2016-07-26 44 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!