gpt4 book ai didi

使用 Oracle 内部 JDBC 驱动程序调用 createClob() 时出现 java.lang.NoSuchMethodError

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:09 25 4
gpt4 key购买 nike

我在 Oracle 11.2.0.3 数据库中加载了一个 Java 程序。我正在使用 Oracle 的 Server-Side Internal Driver与主机数据库通信。

问题是当我尝试将数据插入 clob 列时

Clob clob = targetCon.createClob();
clob.setString(1, (String) value);
insertStm.setClob(col, clob);

我收到错误

Exception in thread "Root Thread" java.lang.NoSuchMethodError

如果我从独立程序(在数据库外部运行)调用它,则相同的代码可以工作。在这两种情况下,驱动程序信息均显示 Oracle JDBC 驱动程序版本:11.2.0.3.0

我还尝试了以下代码

String s = (String) value;
StringReader stringReader = new StringReader(s);
insertStm.setCharacterStream(col, stringReader , s.length());

但这给了我

java.sql.BatchUpdateException: ORA-01460: unimplemented or unreasonable conversion requested

Doc ID 1484721.1在 My Oracle Support 中指示使用 setClob()...

为什么我的代码在作为独立程序运行时可以工作,但在使用内部驱动程序(具有相同版本)时抛出错误?

最佳答案

这个问题似乎可以通过将插入内容包装在 PL/SQL block 中来解决

BEGIN
INSERT id, c INTO clob_tab VALUES(?,?);
END;

并使用setCharacterStream,但我仍然很好奇为什么原始代码会抛出NoSuchMethodError

关于使用 Oracle 内部 JDBC 驱动程序调用 createClob() 时出现 java.lang.NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25238228/

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