我正试图通过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
不幸的是,没有什么好说的。
文件格式不正确。不能将值括在那些字段本身使用的字符中。由于数据包含双引号,您必须有选择地将值括在其他内容中,而不是双引号中。
但是,由于您已经用管道字符拆分了值,您需要什么双引号来选择性地将这些字段值括起来?从文件中删除它们,你就不会有任何问题(当然是这种问题;谁知道接下来会发生什么,但那是另一回事(。