有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

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

    setString()代替setCharacterStream()可能有用

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

    从Oracle文档中:

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

    这两种方法中的任何一种都应该有效,并且应该使您能够更新表中的CLOB列