【发布时间】:2014-10-03 23:36:11
【问题描述】:
我在 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 driver version: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
My Oracle Support 中的Doc ID 1484721.1 指示使用 setClob()...
为什么我的代码在作为独立程序运行时可以工作,但在使用内部驱动程序(具有相同版本)时抛出错误?
【问题讨论】: