2012-09-05 7 views
7

में आवश्यक पैरामीटर गुम हो गया है, मैं clojure.java.jdbc में db-spec s के साथ किसी समस्या पर अपने बालों को फाड़ रहा हूं। मैं सोच रहा हूं कि हाल ही में कुछ व्यवहार बदल गए हैं, क्योंकि हाल ही में इस तरह के कुछ काम करते हैं।clojure.java.jdbc

मेरे db-कल्पना इस तरह दिखता है:

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

और फिर आरईपीएल पर:

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 

मुझे पता नहीं क्या NO_SOURCE_FILE के संदर्भ में है है, या तो। मैंने सत्यापित किया है कि ऑरैकल ड्राइवर सुलभ, भारित, इत्यादि भी है। डीबी-स्पेक में मैं किस पैरामीटर को याद कर सकता हूं?

नोट: मुझे एमएस एसक्यूएल सर्वर के साथ एक ही समस्या है।

+1

उपयोगकर्ता $ eval1116.invoke (NO_SOURCE_FILE: 1) आप आरईपीएल पर टाइपिंग के लिए संदर्भित करता –

उत्तर

7

मुद्दा यह है कि prod एक समारोह है, तो या तो परिवर्तन prod (def prod {all props here}) है या जब जरूरत prod समारोह कॉल करने के लिए है: (with-connection (prod) (with-query-results