使用oracle.jdbc.driver.OracleConnection进行类强制转换异常

时间:2012-05-19 12:06:28

标签: java jdbc

我在以下代码的第一行获得了Exception

  

java.lang.ClassCastException:oracle.jdbc.internal.OracleConnection $$ EnhancerByProxool $$ 3415e85无法强制转换为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....");

1 个答案:

答案 0 :(得分:2)

Clob clob = connection.createClob();
clob.setString(1, transcript);

或者简单地使用setClob()方法将读者作为参数:

pstmt.setClob(1, new StringReader(transcript));

无需使用任何数据库专有类。 JDBC应该是一个与数据库无关的抽象层。