如何使用 clojure 在 JDBC 中禁用自动提交
How to disable autocommit in JDBC using clojure
我想使用 Clojure 的 JDBC 接口来更新 Hive 数据库。特别是,我想添加分区。代码如下所示:
(jdbc/db-do-commands hive-db ["ALTER TABLE foo ADD PARTITION (year=2015, month=10, day=1, hour=1) LOCATION '/bar'"])
但是,我遇到了一个错误:
java.sql.SQLException: enabling autocommit is not supported
at org.apache.hive.jdbc.HiveConnection.setAutoCommit (HiveConnection.java:1071)
clojure.java.jdbc$db_transaction_STAR_.doInvoke (jdbc.clj:605)
clojure.lang.RestFn.invoke (RestFn.java:425)
...
据我所知,在 Hive 的 JDBC 驱动程序中启用自动提交目前有 several unresolved issues。因此我想禁用自动提交。 clojure.java.jdbc
是如何做到的?
也许像下面这样的东西会有所帮助:
(let [con (db-find-connection db)]
(.setAutoCommit con false))
祝你好运。
我想使用 Clojure 的 JDBC 接口来更新 Hive 数据库。特别是,我想添加分区。代码如下所示:
(jdbc/db-do-commands hive-db ["ALTER TABLE foo ADD PARTITION (year=2015, month=10, day=1, hour=1) LOCATION '/bar'"])
但是,我遇到了一个错误:
java.sql.SQLException: enabling autocommit is not supported
at org.apache.hive.jdbc.HiveConnection.setAutoCommit (HiveConnection.java:1071)
clojure.java.jdbc$db_transaction_STAR_.doInvoke (jdbc.clj:605)
clojure.lang.RestFn.invoke (RestFn.java:425)
...
据我所知,在 Hive 的 JDBC 驱动程序中启用自动提交目前有 several unresolved issues。因此我想禁用自动提交。 clojure.java.jdbc
是如何做到的?
也许像下面这样的东西会有所帮助:
(let [con (db-find-connection db)]
(.setAutoCommit con false))
祝你好运。