java无法更新oracle中的clob字段
我有一个表,它有一个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 楼答案
在解决类似于OP问题的情况时,回答问题以供其他人利用
setString()
代替setCharacterStream()
可能有用或者作为替代方案,您可能会选择Oracle documentation上建议的解决方案
从Oracle文档中:
这两种方法中的任何一种都应该有效,并且应该使您能够更新表中的CLOB列