- ベストアンサー
SQL-LOADERについて
SQL-LOADERで質問があります。 あるファイルをSQL-LOADERで取り込もうとしたとき、先頭の1バイトが'1'の場合Aテーブルに、'2'の場合Bテーブルにinsertさせることは可能でしょうか? ご存知の方がいましたら、教えてください
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
SQL*Loaderにそのような振り分け機能はありません。 おっしゃっているようなことを実現するためには、SQL_Loaderで読み込ませるファイルを作成するときに複数に分けることです。 つまり、 先頭の1バイトが'1'のA.txt 先頭の1バイトが'2'のB.txt それぞれを読み込むSQL*Loaderのバッチを作成すればOKです。
その他の回答 (2)
- DK10410
- ベストアンサー率50% (2/4)
やりたいことを考慮するとSQL*Loaderよりは、UTL_FILEを使用してP/LSQLブロックもしくはProcedureで処理したほうが、Insertと同時に処理中にカウントや集計処理ができ、チェックもできるのでいいような気がしますが・・
補足
ご回答ありがとうございます。 DK10410さんのおっしゃるとおりPL-SQLでやるほうがいろいろ出来るのですが、今回データ件数が200万件と多いため、SQL-LOADERで考えてみました。 ありがとうございました。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
インサート先を作業用のテーブルにして、そのテーブルにインサートトリガを仕掛け、 2つのテーブルに振り分けることは可能です。(出来なくはないという意味ですが) ですが、2回の実行で問題ないのでしたら、#1で書かれているように対応するのが 合理的な解決です。
お礼
ご回答ありがとうございます。 なるほど、トリガーを用意すれば確かに出来そうですね。 結局2回の実行での方向で考えてます。 時間は倍かかってしまうのが残念ですが、、、 ありがとうございました。
お礼
早速の回答、ありがとうございます。 不可能ということで、、、非常に残念です、、、 明細部データの総件数と、トレーラ部にある件数が一致しているかどうかチェックしたかったのですが、、、、 二度SQL-LOADERを回すしかなさそうですね。 ありがとうございました。