【实验内容】
模拟情况:在数据加载时,调用系统自带函数的情况。※调用自定义函数时方法一样。
//(1)看一下数据导入前dept2中表的数据状况。
-------------------------
SQL> select * from dept2;
DEPTNO DNAME LOC ADD_COL_CA
---------- -------------- ------------- ----------
12 ACCOUNTING NEW YORK 0
22 RESEARCH DALLAS 0
32 SALES CHICAGO 0
42 OPERATIONS BOSTON 0
13 ACCOUNTING NEW YORK 1
23 RESEARCH DALLAS 2
33 SALES CHICAGO 3
43 OPERATIONS BOSTON 4
已选择8行。
SQL>
-------------------------
//(2)做成dept2_ShiYan11_01.dat数据文件。
内容如下:※这里面没有最后新追加的非空字段ADD_COL_CANNOT_NULL的数据。
----------------------------------------
94,ACCOUNTING,NEW YORK
84,RESEARCH,DALLAS
74,SALES,CHICAGO
64,OPERATIONS,BOSTON
----------------------------------------
//(3)做成sqlloder导入用控制文件dept2_ShiYan11_01.ctl
内容如下:
----------------------------------------
LOAD DATA
INFILE 'dept2_ShiYan11_01.dat'
BADFILE 'dept2_ShiYan11_01.bad'
INTO TABLE dept2
APPEND
FIELDS TERMINATED BY ","
TRAILING NULLCOLS -- 表的字段没有对应的值时允许为空
( DEPTNO,
DNAME,
LOC,
ADD_COL_CANNOT_NULL "substr(:DEPTNO,1,1)" -- 像这个样子引用即可,":DEPTNO"这种写法的含义是 引用当前行记录的DEPTNO字段的读入值。
)
----------------------------------------
//(4)启动并执行sqlloader。
sqlldr scott/tiger control="dept2_ShiYan11_01.ctl" log="dept2_ShiYan11_01.log"
--------------------
D:\Oracle学习\test\sqlloader\实验11>sqlldr scott/tiger control="dept2_ShiYan11_01.ctl" log="dept2_ShiYan11_01.log"
SQL*Loader: Release 10.2.0.1.0 - Production on 星期日 6月 19 20:47:55 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
达到提交点 - 逻辑记录计数 3
达到提交点 - 逻辑记录计数 4
D:\Oracle学习\test\sqlloader\实验11>
--------------------
产生的Log文件
--------------------
SQL*Loader: Release 10.2.0.1.0 - Production on 星期日 6月 19 20:47:55 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
控制文件: dept2_ShiYan11_01.ctl
数据文件: dept2_ShiYan11_01.dat
错误文件: dept2_ShiYan11_01.bad
废弃文件: 未作指定
(可废弃所有记录)
要加载的数: ALL
要跳过的数: 0
允许的错误: 50
绑定数组: 64 行, 最大 256000 字节
继续: 未作指定
所用路径: 常规
表 DEPT2,已加载从每个逻辑记录
插入选项对此表 APPEND 生效
TRAILING NULLCOLS 选项生效
列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
DEPTNO FIRST * , CHARACTER
DNAME NEXT * , CHARACTER
LOC NEXT * , CHARACTER
ADD_COL_CANNOT_NULL NEXT * , CHARACTER
列的 SQL 串: "substr(:DEPTNO,1,1)"
表 DEPT2:
4 行 加载成功。
由于数据错误, 0 行 没有加载。
由于所有 WHEN 子句失败, 0 行 没有加载。
由于所有字段都为空的, 0 行 没有加载。
为绑定数组分配的空间: 66048 字节 (64 行)
读取 缓冲区字节数: 1048576
跳过的逻辑记录总数: 0
读取的逻辑记录总数: 4
拒绝的逻辑记录总数: 0
废弃的逻辑记录总数: 0
从 星期日 6月 19 20:47:55 2011 开始运行
在 星期日 6月 19 20:47:55 2011 处运行结束
经过时间为: 00: 00: 00.57
CPU 时间为: 00: 00: 00.24
--------------------
执行后 dept2中的数据状况。
--------------------
SQL> select * from dept2;
DEPTNO DNAME LOC ADD_COL_CA
---------- -------------- ------------- ----------
12 ACCOUNTING NEW YORK 0
22 RESEARCH DALLAS 0
32 SALES CHICAGO 0
42 OPERATIONS BOSTON 0
13 ACCOUNTING NEW YORK 1
23 RESEARCH DALLAS 2
33 SALES CHICAGO 3
43 OPERATIONS BOSTON 4
94 ACCOUNTING NEW YORK 9
84 RESEARCH DALLAS 8
74 SALES CHICAGO 7
64 OPERATIONS BOSTON 6
已选择12行。
SQL>
--------------------
以上。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20335819/viewspace-700210/ ,如需转载,请注明出处,否则将追究法律责任。