表test_table1中原有数据:
SQL> select id,name from test_table1;
ID NAME
1 AA
2 BB
3 CC
4 DD
5 EE
创建表上字段id的唯一性索引:
SQL> create unique index idx_test_table1_id on test_table1(id);
1、不带direct导入和表中原来数据一样的数据:
E:>sqlldr zhaoss/zhaoss@orcl control=result.ctl
SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 2月 10 18:30:22 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
达到提交点 - 逻辑记录计数 5
查看索引状态,仍然有效:
SQL> select status,index_name,table_name from user_indexes where table_name='TES
T_TABLE1';
STATUS INDEX_NAME TABLE_NAME
VALID IDX_TEST_TABLE1_ID TEST_TABLE1
查看表中数据,竟然没有变化:
SQL> select id,name from test_table1;
ID NAME
1 AA
2 BB
3 CC
4 DD
5 EE
查看日志文件:
SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 2月 10 18:30:22 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
控制文件: result.ctl
数据文件: e:result.csv
错误文件: result.bad
废弃文件: 未作指定
(可废弃所有记录)
要加载的数: ALL
要跳过的数: 0
允许的错误: 50
绑定数组: 64 行, 最大 256000 字节
继续: 未作指定
所用路径: 常规
表 TEST_TABLE1,已加载从每个逻辑记录
插入选项对此表 APPEND 生效
列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
ID FIRST * , CHARACTER
NAME NEXT * , CHARACTER
记录 1: 被拒绝 - 表 TEST_TABLE1 出现错误。
ORA-00001: 违反唯一约束条件 (ZHAOSS.IDX_TEST_TABLE1_ID)
记录 2: 被拒绝 - 表 TEST_TABLE1 出现错误。
ORA-00001: 违反唯一约束条件 (ZHAOSS.IDX_TEST_TABLE1_ID)
记录 3: 被拒绝 - 表 TEST_TABLE1 出现错误。
ORA-00001: 违反唯一约束条件 (ZHAOSS.IDX_TEST_TABLE1_ID)
记录 4: 被拒绝 - 表 TEST_TABLE1 出现错误。
ORA-00001: 违反唯一约束条件 (ZHAOSS.IDX_TEST_TABLE1_ID)
记录 5: 被拒绝 - 表 TEST_TABLE1 出现错误。
ORA-00001: 违反唯一约束条件 (ZHAOSS.IDX_TEST_TABLE1_ID)
表 TEST_TABLE1:
0 行 加载成功。
由于数据错误, 5 行 没有加载。
由于所有 WHEN 子句失败, 0 行 没有加载。
由于所有字段都为空的, 0 行 没有加载。
为绑定数组分配的空间: 33024 字节 (64 行)
读取 缓冲区字节数: 1048576
跳过的逻辑记录总数: 0
读取的逻辑记录总数: 5
拒绝的逻辑记录总数: 5
废弃的逻辑记录总数: 0
从 星期四 2月 10 18:30:22 2011 开始运行
在 星期四 2月 10 18:30:22 2011 处运行结束
经过时间为: 00: 00: 00.26
CPU 时间为: 00: 00: 00.14
从日志文件可以看出,各条数据因为在表中已经存在,所以报唯一唯一性约束条件,全部没有导入。
2、然后添加direct=true,再导入
E:>sqlldr zhaoss/zhaoss@orcl control=result.ctl direct=true
SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 2月 10 18:30:56 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
加载完成 - 逻辑记录计数 5。
查看索引状态,索引无效。
SQL> select status,index_name,table_name from user_indexes where table_name='TES
T_TABLE1';
STATUS INDEX_NAME TABLE_NAME
UNUSABLE IDX_TEST_TABLE1_ID TEST_TABLE1
查看表中数据,数据导入进来了:
SQL> select * from test_table1;
ID NAME
1 AA
2 BB
3 CC
4 DD
5 EE
1 AA
2 BB
3 CC
4 DD
5 EE
查看日志文件:
SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 2月 10 18:30:56 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
控制文件: result.ctl
数据文件: e:result.csv
错误文件: result.bad
废弃文件: 未作指定
(可废弃所有记录)
要加载的数: ALL
要跳过的数: 0
允许的错误: 50
继续: 未作指定
所用路径: 直接
表 TEST_TABLE1,已加载从每个逻辑记录
插入选项对此表 APPEND 生效
列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
ID FIRST * , CHARACTER
NAME NEXT * , CHARACTER
表 TEST_TABLE1 的以下索引已处理:
索引 ZHAOSS.IDX_TEST_TABLE1_ID 无法使用, 因为:
ORA-00001: 违反唯一约束条件 (ZHAOSS.IDX_TEST_TABLE1_ID)
表 TEST_TABLE1:
5 行 加载成功。
由于数据错误, 0 行 没有加载。
由于所有 WHEN 子句失败, 0 行 没有加载。
由于所有字段都为空的, 0 行 没有加载。
在直接路径中没有使用绑定数组大小。
列数组 行数: 5000
流缓冲区字节数: 256000
读取 缓冲区字节数: 1048576
跳过的逻辑记录总数: 0
读取的逻辑记录总数: 5
拒绝的逻辑记录总数: 0
废弃的逻辑记录总数: 0
由 SQL*Loader 主线程加载的流缓冲区总数: 1
由 SQL*Loader 加载线程加载的流缓冲区总数: 0
从 星期四 2月 10 18:30:56 2011 开始运行
在 星期四 2月 10 18:30:56 2011 处运行结束
经过时间为: 00: 00: 00.34
CPU 时间为: 00: 00: 00.14
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24496749/viewspace-1045788/ ,如需转载,请注明出处,否则将追究法律责任。