ストアド プロシージャで使用する場合、制御文以外の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引数の位置に指定する場合