Этого код работает, печатая строки в данной таблице:Использования: рядный Fn неудачи в clojure.jdbc вызова запроса
(defn count-extreferences-subset [config]
(let [emr-dbs (:emr-databases config)]
(println "Counting external references: " emr-dbs)
(jdbc/with-db-connection [dbconn (:db-spec (first emr-dbs))]
(let [q "SELECT * FROM LOCREG"
rs (jdbc/query dbconn [q])]
(dorun (map println rs))))))
Согласно документации, в clojure.jdbc, это также должно работать, но должны печатать строки как результирующий набор реализуются (предотвращение переполнения памяти для больших наборов результатов):
(defn count-extreferences-subset [config]
(let [emr-dbs (:emr-databases config)]
(println "Counting external references: " emr-dbs)
(jdbc/with-db-connection [dbconn (:db-spec (first emr-dbs))]
(let [q "SELECT * FROM LOCREG"
_ (jdbc/query dbconn [q] {:row-fn println})]))))
Однако это не удается во время выполнения со следующим исключением:
java.lang.IllegalArgumentException: No value supplied for key: {:row-fn #object[clojure.core$println 0x46ed7a0e "[email protected]"]}
Любая идея, почему использование опции: row-fn не работает?
Это, по-видимому, правильный подход в текущей версии clojure.java.jdbc. Запрос fn имеет arity of 3. – yudistrange