1

次のような行を含む SQL*Loader 制御ファイルがあります。

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

通常、引用符を使用しますが、複数行の文字列内で使用すると、emacs の python 構文の強調表示が壊れてしまうようです。問題は、次のADDRESS_LINE_2ような行があるため、100 万レコードのうち 7,000 レコードしかロードされていない列をロードしていることです。

...(その他の列),Apt #2,(その他の列)...

もちろん、これはエラーを引き起こしています。これが起こらないように囲み文字をエスケープする方法はありますか? それとも、より良い囲み文字を選択する必要がありますか?

ドキュメントに目を通しましたが、これに対する答えが見つからないようです。

4

2 に答える 2

7

見つけた...

2 つの区切り文字が隣り合っている場合は、データ値で 1 つの区切り文字が使用されます。たとえば、'DON''T' は DON'T として格納されます。ただし、フィールドが 2 つの区切り文字だけで構成されている場合、その値は null です。

フィールド リスト リファレンス

于 2009-09-19T15:17:41.863 に答える
0

残念ながら、SqlLoaderフィールドの最大長をチェックしながら、区切り文字の両方の出現を計算します。たとえば、DON''TCHAR(5)は、フィールドで拒否されORA-12899: value too large for column blah.blah2 (actual: 6, maximum: 5)ます。少なくとも私の11gR2では。他のバージョンでは試していません....

于 2013-12-20T23:08:57.957 に答える