Oracleクエリから入力したjava.sql.Clobオブジェクトがあり、このフィールドをDB2テーブル(Clob列)に挿入する必要があります。そこで、私の sqlj クラスで java.sql.Clob タイプを作成し、Oracle select (これも java.sql.Clob) の結果を値に設定しました。挿入しようとしている Clob の長さが約 2.5Mb であるか、dbms_lob.getlength が 2500012 を返します。
SQLJ が実行されると、例外がスローされます。
COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2] SQL0433N 値 "" が長すぎます。SQLSTATE=22001
私が使用している DB2 のバージョンは、データベース サーバー = DB2 OS/390 8.1.0 です。
Oracle のバージョンは、Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64 ビットです。
このエラーがスローされる理由はわかりますか? 私はIBMのドキュメントを探していましたが、Java.sql.Clobオブジェクトを使用してDB2 clob列に挿入することを想定しています...
「CLOB 列の入力パラメーター」 CLOB 列の IN パラメーター、または CLOB 列への入力に使用される INOUT パラメーターの場合、次の手法のいずれかを使用できます。 java.sql.Clob 入力変数を使用します。 CLOB 列: cstmt.setClob(parmIndex, clobData); ..."