1

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

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

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

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

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

我浏览了文档,但似乎没有找到答案。

4

2 回答 2

7

我找到了...

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

字段列表参考

于 2009-09-19T15:17:41.863 回答
0

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

于 2013-12-20T23:08:57.957 回答