2

次の形式の CSV ファイルがある場合

"fd!","sdf","dsfds","dsfd"
"fd!","asdf","dsfds","dsfd"
"fd","sdf","rdsfds","dsfd"
"fdd!","sdf","dsfds","fdsfd"
"fd!","sdf","dsfds","dsfd"
"fd","sdf","tdsfds","dsfd"
"fd!","sdf","dsfds","dsfd"

最初の列の文字列の末尾に感嘆符がある行を除外することは可能ですか? つまり、次の行のみをロードする必要があります

"fd","sdf","rdsfds","dsfd"
"fd","sdf","tdsfds","dsfd"

ありがとう

4

2 に答える 2

4

SQL*Loader Control File Reference (11g)の「 Loading Records Based on a Condition」セクションによると:

「 WHEN句を使用してレコードの条件をテストすることにより、論理レコードをロードまたは破棄することを選択できます。」

したがって、次のようなものが必要です。

LOAD DATA ... INSERT INTO TABLE mytable   WHEN mycol1 NOT LIKE '%!' 
(mycol1..  ,mycol2 ..)

しかし、LIKE演算子は利用できません! =!=しかありません

代わりに外部テーブルを試すことができます。

于 2010-08-22T11:25:26.023 に答える
1

テーブルに CONSTRAINT を貼り付けて、拒否させます。たぶん、ロード後にそれらを削除します。または、UNIX の「grep -v」を使用してファイルからそれらを消去します。

于 2010-08-22T23:04:31.340 に答える