无法在oracle

时间:2017-01-19 06:47:41

标签: java mysql oracle

我有一个包含clob数据类型列的表。从我的java方法,我试图使用update语句更新行的clob列。查询正在执行而没有任何错误,但clob未更新。 相同的代码适用于insert语句。

用于更新clob列的Java代码:

w_Sql="UPDATE MYTABLE SET MYCLOB= ? WHERE CHANGEREQD = ?";
_pstmt = openConnection().prepareStatement(w_Sql);
Reader reader = new StringReader(clobStr);
_pstmt.setCharacterStream(1, reader, clobStr.length());

用于插入clob列的Java代码:

w_Sql="INSERT INTO MYTABLE VALUES(?,?,?,?,?,?,?,'',?)";
_pstmt = openConnection().prepareStatement(w_Sql);
Reader reader = new StringReader(clobStr);
_pstmt.setCharacterStream(1, reader, clobStr.length());

请帮我理解这个问题。

1 个答案:

答案 0 :(得分:1)

在解决类似于OP问题的情况时,回答其他人利用的问题。

setString()可能会替代setCharacterStream()

或者作为替代方案,您可能会选择Oracle documentation完全建议的解决方案!

来自Oracle文档:

Clob myClob = [CONNECTION OBJECT].createClob();
myClob.setString(1, [actual string value]);
_pstmt.setClob(1, myClob);

这两种方法都应该有效,并且应该能够让您更新表中的CLOB列。