正如我在上面的评论中所说,规格尚不清楚,但我怀疑这是您要尝试做的事情。这是一种使用
sqlldr双引号将字段包含在字段中并包含换行符的方式将数据加载到Oracle中的方法,其中记录的末尾是回车/换行符的组合。例如,当数据来自保存为.csv的Excel电子表格时,这种情况就可能发生,其中单元格包含换行符。
这是由Excel导出为.csv并在gvim中查看的数据文件,其中该选项已打开以显示控制字符。您可以将换行符视为
'$'字符,并将回车符视为
'^M'字符:
100,test1,"1line1$1line2$1line3"^M$200,test2,"2line1$2line2$2line3"^M$
使用
"str"infile选项行上的子句构造这样的控制文件,以设置记录字符的结尾。它告诉sqlldr,十六进制0D(回车,或^
M)是记录分隔符(这样,它将忽略双引号内的换行符):
LOAD DATAinfile "test.dat" "str x'0D'" TRUNCATEINTO TABLE testreplacefields terminated by "," optionally enclosed by '"'(cola char,colb char,colc char)
加载后,数据看起来像这样,并保留了注释字段(我称为colc)中的换行符:
SQL> select * 2 from test;COLA COLB COLC-------------------- -------------------- --------------------100 test1 1line1 1line2 1line3200 test2 2line1 2line2 2line3SQL>



