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