2009-06-24 6 views
0

FIRST:はい、私はCONCATENATEとCONTINUEIFについて知っていますが、ドキュメントを理解するほどスマートではないかもしれません。私は彼らが自分の問題をどのように解決するのかを知ることはできません。ありがとうございました...Oracle SQLLoader(sqlldr)をインポートするときに、引用符と改行をどのようにエスケープする必要がありますか?

私はの位置にあります。は、sqlldrを使用してOracle DBにインポートするためのファイルです。

列は "〜"で区切られていなければなりません(尋ねないでください)。ファイルファイルを作成する際、sqlldrがQuotesと改行に関してどのように動作するかについていくつか懸念があります。

シンプルな行は列の値が含まれている場合:

One, Hello~World I "Like" you, and Three 

どのように私は、ファイルへの出力、これをすべきか?私の最初の推測では、私は「〜」OPTIONALLY CTLファイルで指定されたENCLOSED BY「"」BY TERMINATED FIELDSでインポートするのは簡単だろうと想像

One~"Hello~World I "Like" you"~Three 

です。引用符は私が処理する方法がわからない何ですか私は、ファイルを作成するときのように周りの人がさらにどのように

追加のボーナス質問エスケープする必要があります:。?? フィールドは、ラインブレーキを含むことができ、それは

one~Line 
Break~three 
に変わるだろう「生」書き出された場合を。

CTLファイルにオプションがありますか?これらを一緒に "ステッチ"するのに使うことができますか?ブレークは異なる列で発生し、レコードまたは列ごとに複数のブレークが存在する可能性があります。

ありがとうございます!いくつかの実験の後

答えて

1

これは私が発見したものです:

CTLファイルと

key:number, msg:varchar2 

のテーブル構造に引用符や区切り文字を処理するための正しい方法を

FIELDS TERMINATED BY "~" OPTIONALLY ENCLOSED BY '"' 

を使用している間are

1~Hello World 
2~"Hello~World" 
3~"Hello ""World""" 
4~"Hello~""World""" 

データに区切り文字が含まれている場合は、値全体を引用符で囲み、値の引用符を2つの引用符に置き換えます。

改行については、私は別の質問でそれを尋ねるつもりです。

関連する問題