我有一个java.sql.Clob对象,我从Oracle查询填充,然后我必须在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驱动程序] [DB2] SQL0433N值“”太长。 SQLSTATE = 22001
我正在使用的DB2版本是 数据库服务器= DB2 OS / 390 8.1.0
Oracle版本是 Oracle数据库10g企业版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); ......“
答案 0 :(得分:1)
增加数据库中CLOB列的大小。 检查此链接以获取最大clob列大小