问一句关于SQLLOAD控制文件参数的问题
其中的FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ""
OPTIONALLY ENCLOSED BY ""这句是什么意思啊??
书上说是提示每个字段应该被引号括起来。 ???
EXPERT ONE ON ONE 书中的数据和参数文件是
load data
infile *
into table DEPT
replace
fields terminated by ','OPTIONALLY ENCLOSED BY ""
(
DEPTNO,
DNAME,
LOC
)
begindata
10,SALES,"""USA"""
20,ACCOUNTING,"VIRGINIA,USA"
30,CONSULTING,VIRGINIA
插入表中后结果为
10,SALES,"USA"
20,ACCOUNTING,VIRGINIA,USA
30,CONSULTING,VIRGINIA
我不太理解这个参数的含义,自己做试验的时候
load data
infile *
replace into table tempuser.sqlLoadtest
fields terminated by ','OPTIONALLY ENCLOSED BY ""
(
a
)
begindata
"""USA""",
1
无法插入报错,日志如下:
SQL*Loader: Release 9.2.0.1.0 - Production on 星期六 4月 27 13:28:50 2002
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
控制文件: C:\test.ctl
数据文件: C:\test.ctl
错误文件: C:\test.bad
废弃文件: 未作指定
:
(可废弃所有记录)
加载数: ALL
跳过数: 0
允许的错误: 50
绑定数组: 64 行,最大 256000 字节
继续: 未作指定
所用路径: 常规
表TEMPUSER.SQLLOADTEST
已加载从每个逻辑记录
插入选项对此表REPLACE生效
列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
A FIRST * , O (X00) CHARACTER
记录 1: 被拒绝 - 表 TEMPUSER.SQLLOADTEST 的列 A 出现错误。
没有第二个定界字符串
记录 2: 被拒绝 - 表 TEMPUSER.SQLLOADTEST 的列 A 出现错误。
没有第二个定界字符串
表TEMPUSER.SQLLOADTEST:
0 行 加载成功
由于数据错误, 2 行 没有加载。
由于所有 WHEN 子句失败, 0 行 没有加载。
由于所有字段都为空的, 0 行 没有加载。
为结合数组分配的空间: 16512字节(64行)
读取 缓冲区字节数: 1048576
跳过的逻辑记录总数: 0
读取的逻辑记录总数: 2
拒绝的逻辑记录总数: 2
废弃的逻辑记录总数: 0
从星期六 4月 27 13:28:50 2002开始运行
在星期六 4月 27 13:28:50 2002处运行结束
经过时间为: 00: 00: 00.05
CPU 时间为: 00: 00: 00.00
请高手指教 :) ~~~~~~~~~~~~~~~~~