16.20 - 条件と条件ハンドラー - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL ストアド プロシージャおよび埋め込みSQL

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1148-162K-JPN

条件ハンドラーは、SQLSTATEベースまたは汎用になるか、ユーザー定義の条件に関連付けられるかのどちらかです。

SQLSTATEベースの条件ハンドラー

ストアド プロシージャ内のSQL文の実行は、一定の完了、例外、および警告条件になります。こうした条件はSQLSTATE文変数にポストされます。条件ハンドラーを宣言し、それを1つ以上のSQLSTATE値に関連付けることができます。ストアド プロシージャの実行中に、指定したSQLSTATE値によって表わされる条件が発生すると、条件ハンドラーがそのアクションを実行します。

一般条件と汎用条件ハンドラー

一般条件は、キーワードSQLEXCEPTION、SQLWARNING、またはNOT FOUNDで表わされます。条件ハンドラーを宣言し、それを特定のSQLSTATE値ではなく、1つ以上の一般条件に関連付けることができます。ストアド プロシージャの実行中に、指定した一般条件が発生すると、条件ハンドラーがそのアクションを実行します。

条件名の条件ハンドラー

SQLSTATEは、5文字の文字列値です。ニーモニック(略号)名を宣言してそれをSQLSTATE値に関連付けると、そのSQLSTATE値がどのような条件を表わすのかを覚えやすくなります。条件ハンドラーを宣言し、それを1つ以上の条件名に関連付けることができます。ストアド プロシージャの実行中に、条件名または指定したSQLSTATE値によって識別される条件が発生すると、条件ハンドラーがそのアクションを実行します。

ユーザー定義条件とハンドラー

条件名を宣言してもSQLSTATE値とは関連付けない方法で、カスタム条件を定義することができます。これは、条件が自分のニーズに合わないSQLSTATE値で表わされる場合に便利です。条件ハンドラーを宣言し、それを1つ以上のユーザー定義条件に関連付けることができます。ストアド プロシージャの実行中に、ユーザー定義条件が発生すると、条件ハンドラーがそのアクションを実行します。SIGNAL文を使用すると、明示的にユーザー定義条件を発生させることができます。

関連トピック

以下に関する詳細な情報