- ハンドラー アクション文以外のいずれかの文で発生した、複合文中の例外条件、完了条件、およびユーザー定義条件は、適切なハンドラーが存在すればその複合文の中で処理されます。
入れ子の複合文では、内側の複合文の中に適切なハンドラーのない条件は、ハンドラーの検索のために外側の文に伝搬されます。
次の表では、内側の複合文内に特定の条件の処理に使用できるハンドラーが無い場合に発生し得る種々のシナリオについて説明しています。
条件が発生した場所 適切なハンドラー 結果 入れ子ではない複合文 その文の中にある 条件が処理され、ハンドラーのタイプに応じて、ストアド プロシージャの実行が続行するか終了するかします。 存在しないで、次に示す条件の場合 - 例外条件または処理されないユーザー定義条件
- 完了条件
- ストアド プロシージャは終了します。
- ストアド プロシージャの実行は続行します。
- 入れ子の複合文
- ハンドラー アクション文以外の文
その文の中にある 条件が処理されます。 その文の中になく、すぐ外の文で適当なハンドラーの検索が行なわれる。 - その文の中にハンドラーがあれば、条件は処理されます。
- ハンドラーがない場合は、次の外側の複合文で適当なハンドラーの検索が行なわれます。
最も外側の複合文にも適当なハンドラーが存在しないで、次に示す条件の場合:
- 例外条件または処理されないユーザー定義条件の場合、ストアド プロシージャが終了します。
- 完了条件の場合、ストアド プロシージャの実行は、条件が発生した文の次の文から続けられます。
- ハンドラー アクション文で発生した例外条件、完了条件、およびユーザー定義条件の伝搬と処理のルールは、上記とは異なります。
関連情報
- ストアド プロシージャ内の他の入れ子の、または入れ子ではない複合文の中の条件ハンドラーに対する、SQLSTATEコードの再利用については、例: SQLSTATEコードの再利用を参照してください。
- ハンドラー アクション文で発生した例外条件、完了条件、およびユーザー定義条件の伝搬と処理のルールは、ハンドラー アクションで発生する条件を参照してください。