第一質問を複数のCSVファイルをロードする方法:私はtest1.csv、test2.csvとtest3.csvTABLE1、table2のと表3へのロードしようとしていますそれぞれSQLLDRを使用しています。この分野の知識があれば、.ctlファイルでこれを定義しているうちにそれを正しく得ることができない場合は、私の欠点を抱えてください。私は以下のコードを思いつくことができますが、これは正しくありません。私の質問はどうすればこの権利を作ることができるのか、これは可能ですか?SQLLDR - multpleテーブルに
OPTIONS (SKIP=1)
LOAD DATA
INFILE 'test1.csv'
INFILE 'test2.csv'
INFILE 'test2.csv'
TRUNCATE
INTO TABLE table1
fields terminated by ',' optionally enclosed by '"'
TRAILING NULLCOLS
(
Col1 "TRIM(:Col1)",
Col2 "TRIM(:Col2)"
)
INTO TABLE table2
fields terminated by ',' optionally enclosed by '"'
TRAILING NULLCOLS
(
Colx "TRIM(:Colx)",
Coly "TRIM(:Coly)"
)
INTO TABLE table3
fields terminated by ',' optionally enclosed by '"'
TRAILING NULLCOLS
(
Colp "TRIM(:Colp)",
Colq "TRIM(:Colq)"
)
2番目の質問:これはこの最初の質問の代替です。私が最初にそれを理解することができなかったので、私がしたことは、各テーブルの負荷を複数の.ctlファイルに分割し、これらの3つすべてを.batファイルで呼び出すことでした。これは少なくとも動作しますが、私の質問は、以下のようにユーザー/パスワードを3回も言及せずに、これらの3つの.ctlファイルをすべてセッションで処理する方法があるのでしょうか?
sqlldr userid=user/[email protected] control=test1.ctl
sqlldr userid=user/[email protected] control=test2.ctl
sqlldr userid=user/[email protected] control=test3.ctl
データが移動するテーブルをキー入力するために使用できるインジケータフィールドがデータ内に既に存在するか、または追加できましたか? –
データを区別するためのキーとしてカラムを使用していませんが、キーを追加して試すことができます。 – Chito