我有一个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.db2异常:[ibm][CLI驱动程序][db2]SQL0433N值"太长。SQLSTATE=22001
我使用的DB2版本是数据库服务器=DB2 OS/390 8.1.0
Oracle版本为Oracle Database 10g Enterprise Edition 10.2.0.5.0版-64位
你知道为什么会出现这个错误吗?我正在查找IBM文档,它假设使用java.sql.Clob对象插入DB2clob列。。。
"CLOB列输入参数对于CLOB列的IN参数,或用于CLOB列输入的INOUT参数,您可以使用以下技术之一:使用java.sql.Clob输入变量,它与CLOB列完全匹配:cstmt.setClob(parmIndex,clobData)。。。"
增加数据库中CLOB列的大小。检查此链接以获取最大clob列大小
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/r0001029.htm