当前位置: 首页 > 知识库问答 >
问题:

Oracle出现Clojure JDBC错误。。。java.sql.SQLSyntaxErrorException:ORA-00900:无效的sql语句

徐知
2023-03-14

在Oracle的SQL developer中,我创建了一个名为BBS_COUNT_base的表,其定义如下:

CREATE TABLE BBS_COUNT_BASES
   (    BASE_COUNT NUMBER NOT NULL, 
    BASE_EDN CLOB NOT NULL
   )

我还使用以下语句在表中插入了一条记录:

INSERT INTO BBS_COUNT_BASES (base_count, base_edn ) VALUES (100, '{}')

现在,使用SQLDeveloper,我可以使用

UPDATE BBS_COUNT_BASES SET base_edn = '{}' WHERE base_count = 100

将基本edn值更新为(在本测试案例中)相同的值。

但是,当我试图将此语句传递给clojure.java.jdbc/query时,JDBC驱动程序错误输出,标题中显示了错误。有人知道为什么JDBC驱动程序将此语句视为无效吗?

共有1个答案

柯曦
2023-03-14

不能使用query发出UPDATE语句。JDBC在其接口中隔离查询和更新,这就是您得到的异常的含义。使用clojure.java.jdbc/update

 类似资料:
  • 我已使用以下代码创建了一个Oracle SP。如果我从SQLDeveloper执行它,那么它运行时不会出现任何错误/问题。但是,当我尝试从.NET代码调用同一SP时,将引发一个异常,并显示消息“Oracle.DataAccess.Client.OracleException:ORA-00900:invalid SQL statement”。 Oracle SP代码: 我的VB.NET代码: 有什么

  • 问题内容: 我正在使用Oracle 11g,正在通过Java代码执行Oraclesql脚本。我的SQL脚本可能包含SQL语句(DDL或DML)或PL /SQL块,因此我不想解析Java代码中的脚本,但使用此解决方案立即执行了完整的脚本。以下是示例代码,其中包含SQLExec类。 此解决方案在大多数情况下都有效,除了如果sql脚本包含它会失败,并显示 java.sql.SQLSyntaxErrorE

  • 我正在使用Oracle ODBC驱动程序,希望动态传递变量。我的查询是这样的: 虽然这个查询在OracleSQLDeveloper中运行良好,但我认为我没有为ODBC驱动程序正确执行编写查询。有什么建议吗? 从ODBC日志: 退出SQLExecDirectW,返回代码为-1(SQL_错误)“define val='Test';\a从Name='Test'所在的表中选择*

  • 我正在尝试创建一个与DAO.sql链接的DAO接口。stg字符串模板文件。查询非常简单,只需按id选择。 MyDao.groovy: MyDao.sql.stg: 我的后端数据库是甲骨文。我在甲骨文SQLDeveloper中尝试过这个查询,它工作得很好,但是当我使用应用程序和sql.stg文件运行查询时,它会给我: 我怀疑它不知怎么找不到sql。stg文件,即使我在POM中包含了资源目录。 如何让

  • 我正在使用Oracle 11g,我正在通过java代码执行Oracle sql脚本。我的SQL脚本可能包含SQL语句(DDL或DML)或PL/SQL块,所以我不想在我的java代码中解析脚本,而是使用此解决方案一次执行完整的脚本。下面是示例代码,其中SQLExec类位于ant jar中。 此解决方案适用于大多数情况,但如果sql脚本包含,则会因java.sql.SQLSyntaxErrorExce

  • 从jdbcTemplate执行以下查询时遇到异常 以下是例外 org.springframework.jdbc.UncategorizedSQLException:PreparedStatementCallback;SQL的未分类SQLException[update TEMP_BRD_STATS SET STATS=null,其中BRDC_STAT_ID=?];SQL状态[null];错误代码[