2

我正在调用一个带有 CLOB 数据类型的 DB2 SQL 存储过程(在大型机中)作为 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 中的异常:负初始大小: com.ibm.db2.jcc.b.ba.a(ba.java:780)
的 java.io.ByteArrayOutputStream.(Unknown Source) -5 在 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) 在 com.ibm.db2.jcc.c.cy.execute(cy.java:128)









当我使用VARCHAR而不是 CLOB 时,一切似乎都运行良好。我也已经正确注册了输出参数。任何帮助是极大的赞赏

4

1 回答 1

0

sqlExe 实用程序支持处理 CLOB 字段。你可以看看它。源代码在这里:http: //sourceforge.net/projects/sqlexe/

于 2014-03-21T21:34:38.457 回答