Clojure.java.jdbc içinde db-spec
s ile bir sorun üzerinde saçımı yırttım. Son zamanlarda bazı davranışların değişip değişmediğini merak ediyorum, çünkü neredeyse aynı olan bir şey çok yakın zamana kadar çalıştı.clojure.java.jdbc içinde gerekli parametre eksik
Benim db-Spec şuna benzer: Çoğaltma daha sonra
(defn prod []
"Yes, I've verified all of the loaded properties are accurate for the connection"
{ :classname (get-property "acedia.bbts")
:subprotocol (get-property "acedia.bbts.subprotocol")
:subname (str "@" (get-property "acedia.bbts.dev.host") ":" (get-property "acedia.bbts.dev.port") ":" (get-property "acedia.bbts.dev.sid"))
:user (get-property "acedia.bbts.dev.user")
:password (get-property "acedia.bbts.dev.password")})
Ve:
user => (prod)
{:classname "oracle.jdbc.driver.OracleDriver", :subprotocol "oracle", :subname "@hostname:1521:bbts", :user "user", :password "pass"}
user=> (with-connection bbts-dev (with-query-results rs ["select * from customer where rownum < 10"] (dorun (map #(println (:firstname %)) rs))))
user => (use 'clojure.stacktrace)
nil
user => (e)
java.lang.IllegalArgumentException: db-spec [email protected] is missing a required parameter
at clojure.java.jdbc.internal$get_connection.invoke (internal.clj:147)
clojure.java.jdbc.internal$with_connection_STAR_.invoke (internal.clj:154)
user$eval1116.invoke (NO_SOURCE_FILE:1)
clojure.lang.Compiler.eval (Compiler.java:6465)
clojure.lang.Compiler.eval (Compiler.java:6431)
clojure.core$eval.invoke (core.clj:2795)
clojure.main$repl$read_eval_print__5967.invoke (main.clj:244)
clojure.main$repl$fn__5972.invoke (main.clj:265)
nil
ben de NO_SOURCE_FILE
referans olduğu hakkında hiçbir fikrin yok. Oracle sürücüsünün erişilebilir, yüklenmiş, vb. Olduğunu doğruladım. Db-spec'ta hangi parametreyi eksik olabilirdim?
Not: MS SQL Server'da da aynı sorun var.
kullanıcı $ eval1116.invoke (NO_SOURCE_FILE: 1) Eğer REPL de yazarak ifade eder –