使用SQL*Loader可以替换已有的数据.在SQL*Loader中replace这种命令就可以.
truncate与sql loader中的replace有什么区别,truncate要比replace快,使用replace 进行数据替换之前,首先得先删除原有的数据,然后再添加新的数据,replace的删除,会触发删除对应的触发器,而truncate则不会.
sql loader可以过滤掉无效的数据,将不符合条件的数据排除在数据库之外.
使用sql loader可以从多个数据源中加载,加载到数据库中的时候可以插入到多个数据库表中.
执行sql loader的时候,需要将操作系统上的执行批量作业的功能打开,否则会报错.
使用Conventional load与 Direct load之间的区别
Conventional load需要检查五大约束,使用direct load只需要检查三大约束即可(primary key,unique,not null)
Load Data with SQL * Loader
SQL * Loader:Overview
SQL * Loader Control File
The SQL * Loader control file instructs SQL*Loader about:
- Location of the data to be loaded
- Data format
- Configuration details:
- Memory managemtn
- Record rejection
- Interrupted load handling details
- Data manipuliation details
Loading Methods
- Conventional Load
- Direct Path Load
Conventional Load | Direct Path Load |
Uses COMMIT(需要提交) | Uses data saves(faster operation)(不需要提交) |
Always generates redo entries(生成redo 信息) | Generate redo only under specific conditions |
Enforces all constraints(执行五大约束) | Enforce only PRIMARY KEY,UNIQUE,and NOT NULL Constrains(只执行三大约束) |
Fires INSERT triggers(触发插入触发器) | Does not fire INSERT triggers(不会引发INSERT 触发器) |
Can load into clustered tables | Does not load into clusters |
Allows other user to modify tables during load operation | Prevents other users from makeing changes to tables during load operation |
Maintains index entries on each insert | Merges new index entries at the end of the load |