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エラー コードにマッピングされ、制御文を含むストアド プロシージャSQL文の実行のステータスを反映します。

最後の列に示されている初期値は、ストアド プロシージャや埋め込みSQLアプリケーションの実行を開始するときに設定される値です。

結果コード変数 データ型 初期値
SQLCODE SMALLINT 0
SQLSTATE CHARACTER(5)

CHARACTER SETは、数字か大文字のラテン文字(ローマ字)、あるいはその両方の混合です。

’00000’
ACTIVITY_COUNT DECIMAL(18,0) 0

文の実行の終了時に設定された値は、例外の条件または完了の条件(いずれかが発生した場合)を反映します。正常な完了の場合を除き、これらの条件は、特定のSQLSTATE値に条件ハンドラーが指定されていれば処理することができます。

正常完了すると、結果コード変数は、ストアド プロシージャ内の制御文を除くSQL文に適した値に設定されます。制御文は、結果コード変数によって変更されることはありません。

ストアド プロシージャでの結果コード変数に対する制限

ストアド プロシージャでの結果コード変数には、以下の制約が適用されます。

結果コード変数は、ストアド プロシージャに対してローカルです。

入れ子のストアド プロシージャの場合も、呼び出し側のプロシージャにはエクスポートされません。

結果コード変数を明示的に宣言することはできません。

次のような場合には、結果コード変数は指定できません。
  • SET文の割り当てのターゲット(LHS)として指定する場合
  • SQL SELECT…INTO文のINTO句で指定する場合
  • SQL CALL文のINOUTおよびOUT引数の位置に指定する場合