我有一个SQL * Loader控制文件,其行如下:
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '#'
通常情况下,我会使用引号,但如果在多行字符串中使用,这似乎会破坏emacs的python语法高亮显示。问题是我们正在加载一个ADDRESS_LINE_2
列,其中只有7,000个记录正在加载,因为它们有这样的行:
......(其他专栏),Apt#2,(其他专栏)......
这当然会导致错误。有没有办法逃脱封闭的角色,所以这不会发生?或者我只需要选择一个更好的封闭角色?
我查看了文档,但似乎没有找到答案。
答案 0 :(得分:5)
我发现了......
如果彼此相邻地遇到两个分隔符,则在数据值中使用一次分隔符字符。例如,'DON''T'存储为DO NOT。但是,如果该字段仅包含两个分隔符,则其值为null。
答案 1 :(得分:0)
不幸的是,SqlLoader
在检查字段的最大长度时计算分隔符的两次出现。例如,不要将在CHAR(5)
字段中被ORA-12899: value too large for column blah.blah2 (actual: 6, maximum: 5)
拒绝。
至少在我的 11gR2 中。没试过其他版本......