14.1 sql*loader:将外部数据(比如文本型)数据导入oracle database。(用于数据导入、不同类型数据库数据迁移)
14.2 sql*loader 导入数据原理:在段(segment 表)insert 记录
1)conventional:将记录插入到segment的HWM(高水位线)以下的块,要首先访问bitmap ,来确定那些block 有free space
2)direct path:将记录插入到segment的HWM(高水位线)以上的从未使用过的块,绕过db_buffer, 不检查约束。还可以关闭redo, 也支持并行操作,加快插入速度。
例:
SQL> create table emp1 as select * from emp where 1=2;
SQL> insert into emp1 select * from emp; //conventional方式插入数据
SQL> insert /*+ APPEND */ into emp1 select * from emp; //direct path方式插入数据, 必须commit后才能查看数据
14.3 sql*loader 用法
SQLLDR keyword=value [,keyword=value,...]
看帮助信息
$/u01/oracle/bin/sqlldr(回车)。如果要使用direct path方式,在命令行中使用关键字 direct=TRUE
*注意点:sql*loader与data dump的一个区别:data dump只能读取由它导出的文件,而sql*loader可以读取任何它能解析的第三方文件格式
14.4 例子:
1)模拟生成数据源
11:02:13 SQL> select empno||','||ename||','||job||','||m
14.2 sql*loader 导入数据原理:在段(segment 表)insert 记录
1)conventional:将记录插入到segment的HWM(高水位线)以下的块,要首先访问bitmap ,来确定那些block 有free space
2)direct path:将记录插入到segment的HWM(高水位线)以上的从未使用过的块,绕过db_buffer, 不检查约束。还可以关闭redo, 也支持并行操作,加快插入速度。
例:
SQL> create table emp1 as select * from emp where 1=2;
SQL> insert into emp1 select * from emp; //conventional方式插入数据
SQL> insert /*+ APPEND */ into emp1 select * from emp; //direct path方式插入数据, 必须commit后才能查看数据
14.3 sql*loader 用法
SQLLDR keyword=value [,keyword=value,...]
看帮助信息
$/u01/oracle/bin/sqlldr(回车)。如果要使用direct path方式,在命令行中使用关键字 direct=TRUE
*注意点:sql*loader与data dump的一个区别:data dump只能读取由它导出的文件,而sql*loader可以读取任何它能解析的第三方文件格式
14.4 例子:
1)模拟生成数据源
11:02:13 SQL> select empno||','||ename||','||job||','||m