1

ORA-01704: string literal too long当字段 RAWDATA 的字符数超过 4000 个时,我收到错误消息。数据类型为 CLOB。我正在使用 java 1.4 和 oracle 10g。

stmt = conn.prepareStatement("INSERT INTO RAWDATA_EQUIFAX (REQ_ID, BUREAU_CODE, RAWDATA, RESP_TIME) VALUES (?, ?, ?, ?)");

stmt.setInt(1, RequestID);
stmt.setString(2, bureau_code);
stmt.setString(3, rawData);
stmt.setTimestamp(4, new Timestamp(date.getTime()));
stmt.executeUpdate();
conn.commit();
4

2 回答 2

3

不要PreparedStatement#setString()用来设置一个Clob. 您可以使用
一种方法来代替。PreparedStatement#setClob()

于 2013-05-29T21:28:59.580 回答
0

我认为您应该使用它来将 Clob 参数设置为 PreparedStatement:

Clob clob = conn.createClob();
clob.setString(1, rawData);
stmt.setClob(3, clob);
clob.free();
于 2013-07-24T12:45:11.333 回答