条件と条件ハンドラー - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/vqj1592443206677.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1148
Product Category
Software
Teradata Vantage

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

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

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

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

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

条件名の条件ハンドラー

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

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

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

関連情報