【问题标题】:How to retain double quotes in a column while loading a file using SQL Loader使用 SQL Loader 加载文件时如何在列中保留双引号
【发布时间】:2020-04-27 22:33:10
【问题描述】:

我正在尝试通过 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

【问题讨论】:

    标签: oracle double-quotes sql-loader


    【解决方案1】:

    很遗憾,没什么好说的。

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

    然而,由于您已经使用管道字符分割值,您需要什么双引号来可选地括住这些字段值?从文件中省略它们,您就不会有任何问题(当然是这类问题;谁知道接下来会发生什么,但那是另一回事了)。

    【讨论】:

    • 不幸的是,该文件来自外部源,每个字段值都用双引号括起来。在将文件加载到 oracle 表之前,我必须手动删除
    • 如果您要求 external source 删除封闭的双引号,他们会咬你吗?我会问;它没有任何成本,但可能会有很多的帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 2011-12-30
    • 2017-08-12
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多