gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:14:56 27 4
gpt4 key购买 nike

我需要能够在 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.

最佳答案

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

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

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

关于postgresql - 是否可以使用 clojure.java.jdbc 从文件中修补加载 SQL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15120287/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com