gpt4 book ai didi

java - DB2 JDBC 创建 clob 错误

转载 作者:行者123 更新时间:2023-11-29 03:42:02 25 4
gpt4 key购买 nike

我使用的是 9 系列的 db2jcc 驱动程序 FIX Pack 6。

我的代码

public void setParamsPreparedStatement(PreparedStatement s, String[][] params) throws Exception {
...
Clob myClob = s.getConnection().createClob();
myClob.setString(1, params[i][0]);

s.setClob(i+1, myClob);

在 JBoss 5.1.0 GA 中它抛出错误:

12:01:54,914 242266 ERROR [org.jboss.aspects.tx.TxPolicy] (ConsumerMessageQueue:(1):) javax.ejb.EJBTransactionRolledbackException: Unexpected Error
java.lang.AbstractMethodError: org.jboss.resource.adapter.jdbc.jdk5.WrappedConnectionJDK5.createClob()Ljava/sql/Clob;
at database.Executer.setParamsPreparedStatement(Executer.java:761)

在普通 java 中它给出了错误:

Exception in thread "main" java.lang.AbstractMethodError: com.ibm.db2.jcc.b.b.createClob()Ljava/sql/Clob;
at TestClob.main(TestClob.java:20)

是什么原因?

最佳答案

根据我的经验,根本不需要 createClob() 调用。只需使用 PreparedStatement.setCharacterStream()

PreparedStatement pstmt = conn.prepareStatement("insert into clob_table (id, clob_colum) values (?,?)";
String clobData = "....";
Reader reader = new StringReader(clobData);
pstmt.setInt(1, 42);
pstmt.setCharacterStream(2, reader, clobData.length());
pstmt.executeUpdate();

我发现这是处理 CLOB(以及类似方式的 BLOB)的唯一跨 DBMS/JDBC 解决方案。

关于java - DB2 JDBC 创建 clob 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12724971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com