4

以下のコードの最初の行で例外が発生しています

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....");
4

1 に答える 1

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

または、引数としてリーダーを受け取る setClob() メソッドを単純に使用します。

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

データベース独自のクラスを使用する必要はありません。JDBC は、データベースに依存しない抽象化レイヤーであると想定されています。

于 2012-05-19T12:14:00.740 に答える