3

clojure で複数の SQL ステートメントを含むファイルを読み込んで実行できるようにする必要があります。たとえば、次のようなステートメントを含むファイルがあるとします。

ALTER TABLE bla...;
ALTER TABLE foo...;
UPDATE bla SET ...;
UPDATE foo SET ...;
ALTER TABLE bla DROP...;
ALTER TABLE foo DROP...;

セミコロンで終了する多くのステートメントを含むファイルです。

を使用しようとすると、現在次のエラーが発生していますdo-commands

PSQLException org.postgresql.util.PSQLException: Too many update results were returned.
4

2 に答える 2

6

私がこれを解決した方法は次のようなものでした:

(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")

他の人がこの問題をどのように処理したかを知りたいです。より良い方法はありますか?

于 2013-02-27T19:09:20.090 に答える