【问题标题】:How do I escape an enclosure character in a SQL Loader data file?如何转义 SQL Loader 数据文件中的附件字符?
【发布时间】:2009-09-19 15:09:33
【问题描述】:

我有一个 SQL*Loader 控制文件,其中有如下一行:

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '#'

通常,我会使用引号,但如果在多行字符串中使用,这似乎会破坏 emacs 的 python 语法突出显示。问题是我们正在加载一个 ADDRESS_LINE_2 列,其中一百万条记录中只有 7,000 条正在加载,因为它们有这样的行:

...(其他列),Apt #2,(其他列)...

这当然会导致错误。有没有办法逃脱封闭的字符,所以这不会发生?还是我只需要选择一个更好的封闭字符?

我查看了文档,但似乎没有找到答案。

【问题讨论】:

    标签: sql oracle plsql oracle10g sql-loader


    【解决方案1】:

    我找到了...

    如果遇到两个相邻的分隔符,则在数据值中使用一次分隔符。例如,'DON''T' 存储为 DON'T。但是,如果该字段仅包含两个分隔符,则其值为 null。

    Field List Reference

    【讨论】:

      【解决方案2】:

      不幸的是,SqlLoader 在检查字段的最大长度时会计算两个分隔符的出现。例如,DON''T 将在 CHAR(5) 字段中被拒绝,ORA-12899: value too large for column blah.blah2 (actual: 6, maximum: 5)。 至少在我的 11gR2 中。其他版本没试过....

      【讨论】:

        猜你喜欢
        • 2016-08-14
        • 2020-01-19
        • 1970-01-01
        • 2018-05-26
        • 2020-06-13
        • 1970-01-01
        • 2020-04-19
        • 1970-01-01
        相关资源
        最近更新 更多