2016-07-26 47 views
0

在Oracle的SQL开发人员,我已经创建了一个名为BBS_COUNT_BASES,定义如下表:Clojure的JDBC错误与Oracle ... java.sql.SQLSyntaxErrorException:ORA-00900:无效的SQL语句

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驱动程序将此语句视为无效?

+0

1.您可以粘贴您的Clojure代码吗? 2.你能否确保你通过你在SQL Developer中使用的Clojure程序来使用连接到Oracle的相同模式(用户)?我知道,这听起来微不足道,但已经被这个咬伤了。 –

+3

坚持下去,你试图通过'query'发布UPDATE?这不行,你需要使用'update!'。请确认'query'就是你在Clojure程序中使用的 - 那就是原因。 –

回答

0

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