2

DB2 SQL ストアド プロシージャ (メインフレームにある) を、CLOB データ型を他のパラメーターの中で out パラメーターとして呼び出しています。

CREATE PROCEDURE ACT_GETAUDIT01                                     
       (                                                            
        IN IN_ID            CHAR(12) FOR SBCS DATA CCSID EBCDIC  
       ,IN IN_CURSOR_ID        INTEGER                              
       ,IN IN_PAGING_TS        CHAR(26) FOR SBCS DATA CCSID EBCDIC  
       ,OUT OUT_AUDTDATA  CLOB FOR SBCS DATA CCSID EBCDIC           
       )


   LANGUAGE SQL                                                 
   READS SQL DATA                                               

このストアド プロシージャを JAVA から呼び出すと、execute()ステートメントで次の例外が発生します。

CallableStatement cs =  conn.prepareCall(callstmt);

boolean resultsavailable = cs.execute();

スレッド「メイン」の例外 java.lang.IllegalArgumentException: 負の初期サイズ:
java.io.ByteArrayOutputStream で -5。(不明なソース)
com.ibm.db2.jcc.b.ba.a(ba.java:780) で
com.ibm.db2.jcc.b.bd.d(bd.java:1961)
com.ibm.db2.jcc.b.bd.l(bd.java:378)
com.ibm.db2.jcc .b.bd.e(bd.java:91)
の com.ibm.db2.jcc.bre(r.java:108)
の com.ibm.db2.jcc.b.bs.i (bs.java:191) )
com.ibm.db2.jcc.c.cw.o(cw.java:1213)
で com.ibm.db2.jcc.c.cx.d(cx.java:2061)
で com.ibm.db2。 jcc.c.cy.bq(cy.java:145)
at com.ibm.db2.jcc.c.cy.execute(cy.java:128)

VARCHARCLOB の代わりに使用すると、すべて正常に動作するようです。また、出力パラメーターを適切に登録しました。どんな助けでも大歓迎です

4

1 に答える 1