0

尝试在 Java 代码中将字符串转换为 Clob 时遇到问题。我正在使用 java 1.4 和 oracle 10g。

stmt = conn.prepareStatement("INSERT INTO RAWDATA_EQUIFAX (REQ_ID, BUREAU_CODE, RAWDATA, RESP_TIME) VALUES (?, ?, ?, ?)");
stmt.setClob(3, rawData); //rawData is String in java

我得到的错误是:

The method setClob(int, Clob) in the type PreparedStatement is not applicable for the arguments (int, String)
4

2 回答 2

0

你应该可以使用PreparedStatement#setCharacterStream(int, Reader, int)

Reader reader = new StringReader(rawData);
stmt.setCharacterStream(3, reader, rawData.length()); //or whicehver index

升级到java 7。

于 2013-05-30T15:24:30.960 回答
0

使用 10g,您不再需要 Java 端的 CLOB。只需将连接属性设置SetBigStringTryClobtrueStrings在 JDBC API 中使用。

http://rocksolutions.wordpress.com/2010/06/07/handling-clobs-made-easy-with-oracle-jdbc-10g/

于 2013-05-30T15:57:35.847 回答