【实验内容】将实验(1)中的数据文件和控制文件稍作修改,模拟一种要加载的数据本身包含逗号的情况。
【实验过程】
//(1)看一下数据导入前dept2中表的数据状况。
C:\>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 6月 15 06:32:32 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn
输入口令:
已连接。
SQL> set feedback on
SQL> select * from dept2;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
11 ACCOUNTING NEW YORK
21 RESEARCH DALLAS
31 SALES CHICAGO
41 OPERATIONS BOSTON
已选择8行。
SQL>
//(2)做成dept2_ShiYan03_01.dat数据文件。
内容如下:
----------------------------------------
12,ACCOUNTING,NEW YORK
22,RESEARCH,DALLAS
32,"SALES,LVA",CHICAGO
42,OPERATIONS,BOSTON
----------------------------------------
//(3)做成sqlloder导入用控制文件dept2_ShiYan03_01.ctl内容如下:
----------------------------------------
LOAD DATA
INFILE 'dept2_ShiYan03_01.dat'
BADFILE 'dept2_ShiYan03_01.bad'
INTO TABLE dept2
APPEND
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"' -- OPTIONALLY ENCLOSED BY参数指明定界符为双引号
-- (CSV格式文件默认定界符是双引号.可以根据实际情况修改OPTIONALLY的参数值( DEPTNO,
DNAME,
LOC
)
----------------------------------------
//(4)启动并执行sqlloader。
sqlldr scott/tiger control="dept2_ShiYan03_01.ctl" log="dept2_ShiYan03_01.log"
--------------------
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>cd\
C:\>d:
D:\>cd D:\Oracle学习\test\sqlloader\实验3
D:\Oracle学习\test\sqlloader\实验3>sqlldr scott/tiger control="dept2_ShiYan03_01.ctl" log="dept2_ShiYan03_01.log"
SQL*Loader: Release 10.2.0.1.0 - Production on 星期三 6月 15 06:41:54 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
达到提交点 - 逻辑记录计数 3
达到提交点 - 逻辑记录计数 4
D:\Oracle学习\test\sqlloader\实验3>
--------------------
产生的Log文件
--------------------
SQL*Loader: Release 10.2.0.1.0 - Production on 星期三 6月 15 06:41:54 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
控制文件: dept2_ShiYan03_01.ctl
数据文件: dept2_ShiYan03_01.dat
错误文件: dept2_ShiYan03_01.bad
废弃文件: 未作指定
(可废弃所有记录)
要加载的数: ALL
要跳过的数: 0
允许的错误: 50
绑定数组: 64 行, 最大 256000 字节
继续: 未作指定
所用路径: 常规
表 DEPT2,已加载从每个逻辑记录
插入选项对此表 APPEND 生效
列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
DEPTNO FIRST * , O (") CHARACTER
DNAME NEXT * , O (") CHARACTER
LOC NEXT * , O (") CHARACTER
表 DEPT2:
4 行 加载成功。
由于数据错误, 0 行 没有加载。
由于所有 WHEN 子句失败, 0 行 没有加载。
由于所有字段都为空的, 0 行 没有加载。
为绑定数组分配的空间: 49536 字节 (64 行)
读取 缓冲区字节数: 1048576
跳过的逻辑记录总数: 0
读取的逻辑记录总数: 4
拒绝的逻辑记录总数: 0
废弃的逻辑记录总数: 0
从 星期三 6月 15 06:41:54 2011 开始运行
在 星期三 6月 15 06:41:55 2011 处运行结束
经过时间为: 00: 00: 00.73
CPU 时间为: 00: 00: 00.20
--------------------
执行后 dept2中的数据状况。
--------------------
SQL> select * from dept2;
DEPTNO DNAME LOC
---------- -------------- -------------
12 ACCOUNTING NEW YORK
22 RESEARCH DALLAS
32 SALES,LVA CHICAGO
42 OPERATIONS BOSTON
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
11 ACCOUNTING NEW YORK
21 RESEARCH DALLAS
31 SALES CHICAGO
41 OPERATIONS BOSTON
已选择12行。
SQL>
--------------------
以上。