Java 使用clob值更新oracle中的clob列

Java 使用clob值更新oracle中的clob列,java,sql,oracle,hibernate,Java,Sql,Oracle,Hibernate,我想更新一列是CLOB类型,方法如下 public boolean formVeriGuncelleSil(String sql) throws VeritabaniException { try { Session session = getSessionFactory().getCurrentSession(); SQLQuery query = session.createSQLQuery(sql);

我想更新一列是CLOB类型,方法如下

public boolean formVeriGuncelleSil(String sql) throws VeritabaniException {
        try {
            Session session = getSessionFactory().getCurrentSession();
            SQLQuery query = session.createSQLQuery(sql);
            query.executeUpdate();
            return true;
        } catch (RuntimeException e) {
            throw new VeritabaniException(e, VERIGUNCELLEMEEXCEPTION, "FID_01_02_01");
        }
    }
sql字符串

UPDATE K1FORM_LISTGRID3 SET TEXTAREA4=oracle.sql.CLOB@77df8d, TEXTT5='ANAFORM',ANATABLO='1', OLUSTURAN_KULLANICI='184' WHERE ID=1
我收到“java.sql.SQLSyntaxErrorException:ORA-01729:应为数据库链接名”错误


如何修复此sql。请帮助。

Oracle正在解释此SQL

SET TEXTAREA4=oracle.sql.CLOB@77df8d
因为@符号,所以作为数据库链接,但这并不重要,因为您在这里所做的一切都是尝试将列的值设置为CLOB的toString,这不是您想要的

您的代码示例并没有真正概述问题出在哪里,因为该方法只是执行传递的SQL的通用工具,但我建议使用以下两种方法中的一种:

  • 按照的建议,切换到使用PreparedStatement,其中使用PreparedStatement.setClob绑定CLOB
  • 如果您使用的是Oracle11g+JDBC驱动程序,那么可以使用简单的Java字符串设置CLOB列的值

  • 修理什么?您是否收到错误消息?是的,我收到“java.sql.SQLSyntaxErrorException:ORA-01729:预期的数据库链接名称”错误和我的sql查询“更新K1SSS_LISTGRID3 SET TEXTAREA4=oracle.sql”。CLOB@77df8d,TEXTT5='deneme',ANATABLO='1',OLUSTURAN_KULLANICI='184',其中ID=23''使用和
    setClob
    方法。