在Java 1.4 oracle 10g中将String转换为Clob

时间:2013-05-30 15:20:08

标签: java oracle

尝试在Java代码中将String转换为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)

2 个答案:

答案 0 :(得分:0)

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

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

升级到java 7。

答案 1 :(得分:0)

使用10g,您不再需要Java端的CLOB。只需将连接属性SetBigStringTryClob设置为true,然后在JDBC API中使用Strings

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