このトピックでは、ワークベンチのストアード・プロシージャーおよびユーザー定義関数機能での現在の制限について説明します。
ファイル・システムから Java ストアード・プロシージャーをインポートして、それをターゲット・データベースに正常にデプロイした後に、ストアード・プロシージャーの実行が失敗する場合があります。 メソッド名が、ストアード・プロシージャーが実行する環境内にすでに存在しているメソッド名と競合する可能性があります。
ストアード・プロシージャーのインプリメンテーション・クラスは、パッケージに組み込まれて固有に識別されることを確認する必要があります。 Java ソース内にパッケージ・ステートメントを挿入して、ストアード・プロシージャーを開発プロジェクトにインポートします。 さらに、ストアード・プロシージャーのインプリメンテーション・メソッドが固有の名前を持っていることを確認します。 これは、開発プロジェクトにインポートする前に Java ソース内のメソッド名を変更することで実行できます。
java.sql.SQLException: invalid options string at com.ibm.db2.jcc.sqlj.Binder.a(Binder.java:1018) at com.ibm.db2.jcc.sqlj.Binder.a(Binder.java:775) at com.ibm.db2.jcc.sqlj.Binder.a(Binder.java:432) at com.ibm.db2.jcc.sqlj.Binder.bindMain(Binder.java:338) at com.ibm.db2.jcc.sqlj.Customizer.customizeMain(Customizer.java:810) at com.ibm.db2.jcc.sqlj.Customizer.main(Customizer.java:272)
この問題は、DB2 UDB for Linux, UNIX, and Windows バージョン 8 フィックスパック 6 で修正されています。 このエラーに対処するには、ACTION(REPLACE) オプションの後 に他のすべてのバインド・オプションを指定します。 例えば、BLOCKING(ALL) ACTION(REPLACE) ではなく、ACTION(REPLACE) BLOCKING(ALL) を使用します。
ACTION(REPLACE) オプションのみを使用してこのエラーを回避する場合は、パッケージをリモート・サーバーにバインドする際のデフォルトの検証レベルが、ACTION(REPLACE) VALIDATE(BIND) のように自動的に追加されます。