Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


6.16 SQLSTATE変数

SQLを実行するとHiRDBによってリターンコード(SQLSTATE)が設定されます。SQLSTATE変数は,2けたのクラス,及び3けたのサブクラスで構成されている5けたの文字列です。

SQLSTATE変数は,プリプロセス実行時にシステムが宣言文をソースプログラム中に埋め込むため,UAPでの宣言は必要ありません。データ型は,C言語ではchar[5],COBOL言語ではPIC X(5)で宣言しています。

参照する場合は,変数名称SQLSTATEを指定してください。

また,複数接続機能を使用した環境では,DECLARE CONNECTION HANDLE SET文でSQLSTATEが使用する接続ハンドルを宣言しておく必要があります。

設定されるSQLSTATEの値は,クライアント環境変数PDSTANDARDSQLSTATE及びシステム共通定義pd_standard_sqlstateの設定によって変わります。SQLSTATEについては,マニュアル「HiRDB メッセージ」を参照してください。

クラスの意味とサブクラスの関係を次に示します。

クラス

サブクラス

設定条件

00

000

正常終了

01

nnn

正常終了(ただし,警告あり)

02

000

データがない

40

nnn

異常終了(トランザクションはロールバックした)

R2

000

データがない(ただし,リストを使用した検索で,リスト作成時には存在した行が返らなかった場合)

mm

nnn

異常終了

mm及びnnnの意味を次に示します。

mm:マニュアル「HiRDB メッセージ」で示すSQLSTATEのクラスが設定されます。

nnn:マニュアル「HiRDB メッセージ」で示すSQLSTATEのサブクラスが設定されます。

ただし,mm及びnnnはHiRDBの機能拡張によって値が変わる場合があります。