アプリ版:「スタンプのみでお礼する」機能のリリースについて

SQL-LOADERで質問があります。

あるファイルをSQL-LOADERで取り込もうとしたとき、先頭の1バイトが'1'の場合Aテーブルに、'2'の場合Bテーブルにinsertさせることは可能でしょうか?

ご存知の方がいましたら、教えてください

A 回答 (3件)

SQL*Loaderにそのような振り分け機能はありません。



おっしゃっているようなことを実現するためには、SQL_Loaderで読み込ませるファイルを作成するときに複数に分けることです。

つまり、
先頭の1バイトが'1'のA.txt
先頭の1バイトが'2'のB.txt
それぞれを読み込むSQL*Loaderのバッチを作成すればOKです。
    • good
    • 0
この回答へのお礼

早速の回答、ありがとうございます。
不可能ということで、、、非常に残念です、、、

明細部データの総件数と、トレーラ部にある件数が一致しているかどうかチェックしたかったのですが、、、、
二度SQL-LOADERを回すしかなさそうですね。

ありがとうございました。

お礼日時:2007/01/22 19:38

インサート先を作業用のテーブルにして、そのテーブルにインサートトリガを仕掛け、


2つのテーブルに振り分けることは可能です。(出来なくはないという意味ですが)

ですが、2回の実行で問題ないのでしたら、#1で書かれているように対応するのが
合理的な解決です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

なるほど、トリガーを用意すれば確かに出来そうですね。
結局2回の実行での方向で考えてます。
時間は倍かかってしまうのが残念ですが、、、

ありがとうございました。

お礼日時:2007/01/23 16:38

やりたいことを考慮するとSQL*Loaderよりは、UTL_FILEを使用してP/LSQLブロックもしくはProcedureで処理

したほうが、Insertと同時に処理中にカウントや集計処理ができ、チェックもできるのでいいような気がしますが・・

この回答への補足

ご回答ありがとうございます。
DK10410さんのおっしゃるとおりPL-SQLでやるほうがいろいろ出来るのですが、今回データ件数が200万件と多いため、SQL-LOADERで考えてみました。
ありがとうございました。

補足日時:2007/01/23 16:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!