我在下面代码的第一行得到异常
java.lang.ClassCastException: oracle.jdbc.internal.OracleConnection$$EnhancerByProxool$$3415e85 cannot be cast to oracle.jdbc.driver.OracleConnection
如何将字符串转换为 oracle.sql.Clob
以及如何使用 PreparedStatement
插入。
// con is java.sql.Connection object
oracle.sql.CLOB newClob = oracle.sql.CLOB.createTemporary(con, false, oracle.sql.CLOB.DURATION_SESSION);
newClob.putString(1,transcript);
pstmt.setClob(1, newClob);
pstmt.setString(2, StringUtils.dateToMillis(endTime));
pstmt.setString(3, sessionID);
int count = pstmt.executeUpdate();
System.out.println("updated count ::"+count);
System.out.println("transcript updated....");
最佳答案
Clob clob = connection.createClob();
clob.setString(1, transcript);
或者简单地使用 setClob() 方法将一个读者作为参数:
pstmt.setClob(1, new StringReader(transcript));
无需使用任何数据库专有类。 JDBC 应该是一个与数据库无关的抽象层。
关于java - oracle.jdbc.driver.OracleConnection 的类转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665029/