Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何转义SQL加载器数据文件中的封闭字符?_Sql_Oracle_Plsql_Oracle10g_Sql Loader - Fatal编程技术网

如何转义SQL加载器数据文件中的封闭字符?

如何转义SQL加载器数据文件中的封闭字符?,sql,oracle,plsql,oracle10g,sql-loader,Sql,Oracle,Plsql,Oracle10g,Sql Loader,我有一个SQL*加载程序控制文件,其中有一行类似于以下内容: FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '#' 通常,我会使用引号,但如果在多行字符串中使用,这似乎会破坏emacs的python语法突出显示。问题是我们正在加载一个ADDRESS\u LINE\u 2列,其中一百万条记录中只有7000条正在加载,因为它们有如下行: FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '#' …(其

我有一个SQL*加载程序控制文件,其中有一行类似于以下内容:

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '#'
通常,我会使用引号,但如果在多行字符串中使用,这似乎会破坏emacs的python语法突出显示。问题是我们正在加载一个
ADDRESS\u LINE\u 2
列,其中一百万条记录中只有7000条正在加载,因为它们有如下行:

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '#'
…(其他栏目)、Apt#2(其他栏目)

这当然会导致错误。有没有办法转义封闭字符,这样就不会发生这种情况?还是我只需要选择一个更好的封闭字符

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

我找到了

如果相邻遇到两个分隔符,则在数据值中使用该分隔符的单个匹配项。例如,“DON'T”存储为DON'T。但是,如果字段仅由两个分隔符组成,则其值为null

我找到了

如果相邻遇到两个分隔符,则在数据值中使用该分隔符的单个匹配项。例如,“DON'T”存储为DON'T。但是,如果字段仅由两个分隔符组成,则其值为null


不幸的是,
SqlLoader
在检查字段的最大长度时同时计算分隔符的两次出现。例如,DON'T将在
CHAR(5)
字段中被拒绝,且
ORA-12899:值对于blah.blah2列太大(实际值:6,最大值:5)

至少在我的11gR2。没有在其他版本中尝试过…

不幸的是,
SqlLoader
在检查字段的最大长度时同时计算分隔符的两次出现。例如,DON'T将在
CHAR(5)
字段中被拒绝,且
ORA-12899:值对于blah.blah2列太大(实际值:6,最大值:5)
。 至少在我的11gR2。没有在其他版本中尝试过