SQL プロシージャーの条件ハンドラー

条件ハンドラーは、 ある条件が発生したときの SQL プロシージャーの振る舞いを決定します。 一般的な条件、名前付き条件、または特定の SQLSTATE 値に対して 1 つ以上の条件ハンドラーを SQL プロシージャーで宣言することができます。

SQL プロシージャー内のステートメントによって SQLWARNING または NOT FOUND 条件が生じた場合、 もしそれぞれの条件に対してハンドラーを宣言していたときは、 それに対応するハンドラーに Db2® から制御が渡されます。 そのような条件に対してハンドラーを宣言していなかった場合、 SQL プロシージャー本体の次のステートメントに Db2 から制御が渡されます。 SQLCODE および SQLSTATE 変数を宣言していた場合、 それに対応する条件値がその変数内に入ります。

特定の SQLSTATE または SQLEXCEPTION 条件に対してハンドラーを宣言していた場合に、 SQL プロシージャー内のステートメントが SQLEXCEPTION 条件を生じたときは、 そのハンドラーに Db2 から制御が渡されます。 SQLSTATE および SQLCODE 変数を宣言していた場合、ハンドラーの実行が正常に完了した後のその変数の値はそれぞれ '00000' と 0 になります。

特定の SQLSTATE または SQLEXCEPTION 条件に対してハンドラーを宣言していなかった場合に、 SQL プロシージャーのステートメントが SQLEXCEPTION 条件を生じたときは、 Db2 は SQL プロシージャーを終了してから呼び出し元に戻ります。

条件ハンドラー用のハンドラー宣言構文は、『複合 SQL (コンパイル済み)』ステートメントに記述されています。