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)』を参照してください。