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
用語 定義
完了条件 制御文などのSQL文の実行が致命的なイベントを伴わずに完了し、Teradata Databaseから成功または警告付きのOKを示す応答が返された状態。

リクエストが完了(正常な完了以外)すると、SQLCODEには戻りコード(警告コード)が返され、SQLSTATEには完了条件を表わす’00000’以外の値が設定され、ACTIVITY_COUNTにはSQL文に応じて”0”またはゼロ以外の値が設定されます。

完了条件の例
  • 制御文を含むSQL文が実行され、警告が発生した場合。
  • UPDATE文またはDELETE文によって影響を受けた行はゼロの場合。
  • SELECT INTO文によってゼロの行が返された場合。
  • カーソルの取り出しでデータが見つからなかった場合。
条件 制御文などのSQL文の実行によって生じるエラーや通知の状態。

例外の条件や完了の条件は、制御文などのSQL文の実行に関連したステータス変数 (SQLSTATE、SQLCODE、およびACTIVITY_COUNT)に情報を提供するために出されます。

条件ハンドラー アプリケーションに返されるSQLSTATEの値、または、ハンドラー宣言のcondition_nameで指定された条件に応じて1つ以上のアクションを実行するように定義された構成。

ハンドラーはまず、扱う条件を1つまたは複数定義し、次いでそれに関連付けるアクションを定義します。アクションは、ストアド プロシージャの実行において該当する条件が発生すると実行されます。

例外の条件が発生したときに、ストアド プロシージャにどのSQLSTATEコードが返されてもかまわなければ、特定のSQLSTATEコードを1つまたは複数指定する代わりにキーワードSQLEXCEPTIONを指定することができます。SQLEXCEPTIONは、汎用例外条件ハンドラーとして扱われます。

条件名 DECLARE CONDITION文でSQLSTATEコードと関連付けられるニーモニック(略号)名。SQLSTATE値を条件名に関連付けないと、SQLSTATE値を使用してユーザー定義条件を表わします。

条件名は、処理される条件を識別し、条件宣言、処理宣言、SIGNAL文およびRESIGNAL文でのみ使用されます。

条件の値 5文字の文字列リテラルによるSQLSTATE値。
例外条件 SQL文や制御文の実行に失敗した状態。Teradata Databaseの応答は、ERRORまたはFAILUREを示します。

例外条件が処理されると、SQLCODEは戻りコードを反映し、SQLSTATEには例外条件を表わす’00000’以外の値が設定され、ACTIVITY_COUNTは”0”に設定されます。

例外条件の例
  • カーソルの状態が無効な場合
  • ゼロ除算の違反
  • 文字列が切り捨てられた場合(ANSIセッション モードの場合のみ)
  • 基数違反
汎用条件ハンドラー 一般条件を処理すると宣言されたハンドラー。キーワードSQLEXCEPTION、SQLWARNING、またはNOT FOUNDで表わされます。このキーワードは、1つ以上の個別のSQLSTATEコードの代わりに宣言されます。

SQLEXCEPTIONは、すべての例外条件を表わします。

SQLWARNINGは、正常完了と「no data found」完了条件を除くすべての完了条件を表わします。

NOT FOUNDは、すべての「no data found」完了条件を表わします。

正常な完了 SQL文の実行に対するTeradata Databaseの応答が成功または”ok”を示し、警告や他の非致命的なイベントが発生しない状態。

リクエストが正常に完了すると、SQLSTATEは'00000'に設定され、SQLCODEは”0”に、ACTIVITY_COUNTはSQL文に応じて”0”またはゼロ以外の値に設定されます。制御文の場合には、ステータス変数の値は変化しません。

ユーザー定義条件 状況を処理するために、ストアド プロシージャ固有でSQLSTATE値では表わされない、ユーザーによって定義された条件。

関連トピック

以下に関する詳細な情報
  • SQLSTATE変数については、SQLSTATEを参照してください。
  • ユーザー定義の条件を宣言するには、DECLARE CONDITIONを参照してください。