是否可以使用clojure.java.jdbc修补从文件中加载SQL语句?

drs*_*der 3 postgresql jdbc clojure

我需要能够在clojure中使用多个SQL语句加载和执行文件。例如,假设我有一个包含以下语句的文件:

ALTER TABLE bla...;
ALTER TABLE foo...;
UPDATE bla SET ...;
UPDATE foo SET ...;
ALTER TABLE bla DROP...;
ALTER TABLE foo DROP...;
Run Code Online (Sandbox Code Playgroud)

您就知道了-一个包含许多以分号终止的语句的文件。

我目前在尝试使用时遇到以下错误do-commands

PSQLException org.postgresql.util.PSQLException: Too many update results were returned.
Run Code Online (Sandbox Code Playgroud)

drs*_*der 5

我最终解决这个问题的方式是这样的:

(ns myns.db
  (:require [clojure.java.jdbc :as sql]            
            [clojure.java.io :refer [resource]]))

(defn db-conn [] ...)

(defn exec-sql-file  
   [file]  
   (sql/with-connection (db-conn)
    (sql/do-prepared
      (slurp (resource file)))))

...

; from your lein project where src/sql/some-statements.sql is the file you want to load
(exec-sql-file "sql/some-statements.sql")
Run Code Online (Sandbox Code Playgroud)

我很想听听其他人如何处理这个问题。有没有更好的办法?