この問題は、IBM Developer Kit for Java が /usr/lib ディレクトリーにあるライブラリーに対するリンクを作成しないために起きます。 DB2 ルーチンのセキュリティ・モデルでは、標準システム・ライブラリーの外部にある ライブラリーにアクセスすることができません。Linux の Java ルーチンで DECIMAL をサポートできるようにするには、次のステップを実行してください。
IBM Developer Kit for Java 1.1.8:
ln -sf /usr/jdk118/lib/linux/native_threads/* /usr/lib/
IBM Developer Kit for Java 1.3:
ln -sf /opt/IBMJava2-13/jre/bin/*.so /usr/lib/
SQL プロシージャーまたは組み込み SQL で書かれたストアード・プロシージャーの 使用時にエラーを回避するには、再帰的 CALL ステートメントを実行する前に、すべての オープン・カーソルをクローズしてください。
たとえば、次のようなコードの断片を含むストアード・プロシージャー MYPROC が あるとします。
OPEN c1; CALL MYPROC();CLOSE c1;
MYPROC が再帰的 CALL ステートメントを実行するときに、カーソル c1 が まだオープンしているため、MYPROC が呼び出されたときに DB2 はエラーを返します。 DB2 から返される特定のエラーは、MYPROC がカーソルで実行するアクションによって 異なります。
MYPROC を正常に呼び出すためには、次の例のように、ネストされた CALL ステートメントの 前にオープン・カーソルをクローズするように、MYPROC を 書き換えてください。
OPEN c1; CLOSE c1; CALL MYPROC();
ネストされた CALL ステートメントを実行する前にオープン・カーソルをすべて クローズして、エラーを回避してください。
以下の段落の最後の文は、「OLE オートメーション・ストアード・プロシージャー」セクションの第 2 段落から欠落しています:
OLE 自動化オブジェクトをコーディングした後、 CREATE PROCEDURE ステートメントを使用して、そのオブジェクトの メソッドをストアード・プロシージャーとして登録する必要があります。 OLE 自動化ストアード・プロシージャーを登録するには、 LANGUAGE OLE 文節で CREATE PROCEDURE ステートメントを実行します。 外部名は、OLE 自動化オブジェクトとメソッド名を ! (感嘆符) で区切って示す OLE progID で構成されています。OLE 自動化オブジェクトは、処理中の サーバー (.DLL) として実装する必要があります。