jdbc 使用clojure 时执行错误
jdbc execute error when using clojure
以下link https://my.vertica.com/docs/6.0.x/HTML/index.htm#14874.htm提到我们可以使用
boolean result = stmt.execute("COPY customers FROM "
+ " '/data/customers.txt' DIRECT ENFORCELENGTH");
但它在 clojure 中不起作用
(clojure.java.jdbc/execute! vertica-db "copy customer1.stage_test_etl_195 from '/tmp/valid-197.csv' DELIMITER '|' DIRECT ENFORCELENGTH ")
ClassCastException java.lang.Character cannot be cast to java.lang.String clojure.java.jdbc/prepare-statement (jdbc.clj:457)
仔细阅读 clojure.jdbc 文档。要执行的第二个参数!应该是一个向量,第一个元素是 SQL 和其他(可选)参数。以下可能有效
(clojure.java.jdbc/execute! vertica-db ["copy customer1.stage_test_etl_195 from '/tmp/valid-197.csv' DELIMITER '|' DIRECT ENFORCELENGTH "])
假设这是数据库后端的合法声明
以下link https://my.vertica.com/docs/6.0.x/HTML/index.htm#14874.htm提到我们可以使用
boolean result = stmt.execute("COPY customers FROM "
+ " '/data/customers.txt' DIRECT ENFORCELENGTH");
但它在 clojure 中不起作用
(clojure.java.jdbc/execute! vertica-db "copy customer1.stage_test_etl_195 from '/tmp/valid-197.csv' DELIMITER '|' DIRECT ENFORCELENGTH ")
ClassCastException java.lang.Character cannot be cast to java.lang.String clojure.java.jdbc/prepare-statement (jdbc.clj:457)
仔细阅读 clojure.jdbc 文档。要执行的第二个参数!应该是一个向量,第一个元素是 SQL 和其他(可选)参数。以下可能有效
(clojure.java.jdbc/execute! vertica-db ["copy customer1.stage_test_etl_195 from '/tmp/valid-197.csv' DELIMITER '|' DIRECT ENFORCELENGTH "])
假设这是数据库后端的合法声明