如何在使用SQL加载器加载文件时在列中保留双引号



我正试图通过SQL加载器实用程序将带有|(管道(分隔符的txt文件加载到Oracle表中。所有字段都用双引号括起来。但是,文件中的一些文本字段除了需要保留的附带双引号外,还具有额外的双引号。所有表列都定义为VARCHAR。以下是我使用的控制参数

OPTIONS (DIRECT=TRUE,SKIP=1)
LOAD DATA
CHARACTERSET UTF8
INFILE aaa.txt
APPEND INTO TABLE info_table
FIELDS TERMINATED BY "|"
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS

这是我的样本文件

"1"|"High "Gold Tip" Tea, 600"
"2"|""10000 Beers, Wines & Spirits""

表应加载以下详细信息

记录1:

Column 1 - 1
Column 2 - High "Gold Tip" Tea, 600

记录2:

Column 1 - 2
Column 2 - 10000 Beers, Wines & Spirits

不幸的是,没有什么好说的。

文件格式不正确。不能将值括在那些字段本身使用的字符中。由于数据包含双引号,您必须有选择地将值括在其他内容中,而不是双引号中。

但是,由于您已经用管道字符拆分了值,您需要什么双引号来选择性地将这些字段值括起来?从文件中删除它们,你就不会有任何问题(当然是这种问题;谁知道接下来会发生什么,但那是另一回事(。

最新更新