web-dev-qa-db-ja.com

ストアドプロシージャのSQLエラーを無視する方法(扱いません)

処理したいレコードのリストがあり、カーソルはテーブルからそれらを反復処理します。プロシージャは、insertステートメントにヒットして終了するだけで終了します。エラーを無視して次のレコードの処理を続行できる方法はありますか?

カーソルC1:各レコードについて:table_t1(col1)値に挿入( '...'); <-レコード 'n'の終了カーソルのInsertステートメントが失敗する

終了せずにn + 1からカーソルの終わりまで処理を続けたいと思います。

助けてくれてありがとう。

2

それを見つけた。

終了ハンドラの代わりに継続ハンドラを宣言する必要があります。そうすれば、例外があったとしても、ハンドラーに入り、次のレコードに進みます。

SQLEXCEPTION、SQLWARNINGの継続ハンドラーの宣言

BEGIN ...例外/警告を処理するコード... END

3