ORA-01704:oracle 10g中的字符串文字太长了

时间:2013-05-29 21:24:52

标签: java oracle

当字段RAWDATA有超过4000个字符时,我收到ORA-01704: string literal too long错误。数据类型是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();

2 个答案:

答案 0 :(得分:3)

请勿使用PreparedStatement#setString()设置Clob 您可以使用PreparedStatement#setClob()方法。

答案 1 :(得分:0)

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

Clob clob = conn.createClob();
clob.setString(1, rawData);
stmt.setClob(3, clob);
clob.free();