0

たくさんの挿入ステートメントがあります。

これらの行の実行中のエラーを無視したいので、各行を個別に折り返さないようにします。

例:

try
    insert 1
    insert 2
    insert 3
exception
    ...

挿入1で例外がスローされた場合、例外が無視され、挿入2などを実行するために戻ってほしい。

どうすればいいですか?

VBで「Resumenext」のようなものを探しています。

4

3 に答える 3

3

INSERT各ステートメントを独自の例外ハンドラーでラップする必要があります。ただし、いずれかのステートメントが失敗する可能性のある「トン」の挿入ステートメントがある場合は、問題に誤ってアプローチしていると思われる傾向があります。これらの声明はどこから来ていますか?そのソースシステムから直接データをプルできますか?各ステートメントをリストするのではなく、ループでステートメントを実行できますか?最初にデータをステージングテーブルのセットにロードして、すべてのINSERTステートメントが成功することを確認してから(つまり、制約なし、すべての列がVARCHAR2(4000)として定義されているなど)、データをに移動する単一のSQLステートメントを記述できますか?適切な検証と例外処理を備えた実際の宛先テーブル?

于 2012-06-04T15:30:45.970 に答える
0

log error 句を使用します。詳細については、DML エラー ログを使用して一括 INSERT の失敗を回避するを参照してください。

于 2012-06-05T09:07:59.803 に答える