ストアド プロシージャでの結果コード変数 - 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

ストアド プロシージャで使用する場合、制御文以外のSQL文内の結果コード変数には、接頭部としてコロン文字(:)を付ける必要があります。

結果コード変数の初期値

結果コード変数は、データベース エラー コードにマッピングされ、制御文を含むストアド プロシージャ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引数の位置に指定する場合