SQL エラーの戻りコードの処理

DB2 製品には、SQLCODE エラーの値を可読テキスト・メッセージに翻訳するルーチンが含まれます。Open PL/I の DB2 SQL プリコンパイラでプログラムを処理する場合、そのプログラムには %INCLUDE 文が挿入され、その結果プログラムに組み込まれるインクルード・ファイルには、次のようにこの SQLCODE 翻訳ルーチンの宣言がエントリとして含まれます。

declare sqldb2err entry(fixed bin(15) value,
/* Buffer Size   */
fixed bin(15) value, /* Line Width    */
any,                 /* SQLCA         */
any)                 /* Buffer        */
returns(fixed bin(15))
external('sqlgintp');

戻りコードの値は次のようになります。

例:

declare errmsg character(200);

exec sql connect to MYDB;
if sqlca.sqlcode < 0 then do;
put skip list('Connect failed');
/* Now print out reason for failure for most */
/* recent SQL statement (i.e., the connect) */
msg_len = sqldb2err(size(errmsg),0,sqlca,errmsg);
put skip list(substr(errmsg,1,msg_len));
return;
end;

sqldb2err は宣言する必要はあります。上記のように、自動的に宣言されます。

このルーチンの詳細については、ご使用の IBM プラットフォーム固有の『DATABASE 2 Programming Reference』マニュアルに記載されている、『SQLGINTP (Get Error Message)』を参照してください。