【问题标题】:Clojure JDBC error with Oracle... java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement使用 Oracle 的 Clojure JDBC 错误... java.sql.SQLSyntaxErrorException: ORA-00900: 无效的 SQL 语句
【发布时间】:2016-11-30 18:58:38
【问题描述】:

在 Oracle 的 SQL 开发人员中,我创建了一个名为 BBS_COUNT_BASES 的表,其定义如下:

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, '{}')

现在,使用 SQL Developer,我可以使用语句

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

将 base_edn 值更新为(在此测试用例中)相同的值。

但是,当我尝试将此语句传递给 clojure.java.jdbc/query 时,JDBC 驱动程序出错,并出现标题中显示的错误。有谁知道为什么这条语句被 JDBC 驱动程序视为无效?

【问题讨论】:

  • 1.你能粘贴你的 Clojure 代码吗? 2. 您能否确保您使用与在 SQL Developer 中使用的 Clojure 程序连接到 Oracle 的模式(用户)相同?我知道,这听起来微不足道,但已经被这个咬了。
  • 等一下,您正在尝试通过query 发布更新?这不起作用,您需要使用update!。请确认 query 是您在 Clojure 程序中使用的 - 这就是原因。

标签: oracle jdbc clojure ora-00900


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-21
    • 2017-05-12
    • 2010-12-29
    • 2011-07-17
    • 2016-07-09
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多