Skip to content

Instantly share code, notes, and snippets.

@mefesto
Created August 4, 2011 21:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mefesto/1126283 to your computer and use it in GitHub Desktop.
Save mefesto/1126283 to your computer and use it in GitHub Desktop.
(import [org.apache.commons.dbcp BasicDataSource])
(require '[clojure.java.jdbc :as sql])
(def ds
(doto (BasicDataSource.)
(.setDriverClassName "oracle.jdbc.driver.OracleDriver")
(.setUrl "jdbc:oracle:thin:@localhost:1521:sstest")
(.setUsername "testuser")
(.setPassword "testpass")))
(defn nextval [seq]
(sql/with-query-results res
[(str "select " seq ".nextval as id from dual")]
(-> res first :id long)))
(defn run-test []
(sql/with-connection {:datasource ds}
(sql/transaction
(let [id (nextval "testapp_contacts_seq")]
(sql/insert-record
:testapp_contacts
{:id id
:fname "John"
:lname "Smith"
:email "test@test.com"})))))
java.sql.SQLException: error occurred during batching: batch must be either executed or cleared
[Thrown class java.lang.RuntimeException]
Restarts:
0: [QUIT] Quit to the SLIME top level
1: [CAUSE1] Invoke debugger on cause error occurred during batching: batch must be either executed or cleared [Thrown class java.sql.SQLException]
Backtrace:
0: clojure.lang.LazySeq.sval(LazySeq.java:47)
1: clojure.lang.LazySeq.seq(LazySeq.java:56)
2: clojure.lang.RT.seq(RT.java:450)
3: clojure.core$seq.invoke(core.clj:122)
4: clojure.core$dorun.invoke(core.clj:2450)
5: clojure.core$doall.invoke(core.clj:2465)
6: clojure.java.jdbc$insert_records.doInvoke(jdbc.clj:275)
7: clojure.lang.RestFn.invoke(RestFn.java:423)
8: clojure.java.jdbc$insert_record.invoke(jdbc.clj:282)
9: user$run_test$fn__2580$fn__2581.invoke(NO_SOURCE_FILE:1)
10: clojure.java.jdbc.internal$transaction_STAR_.invoke(internal.clj:174)
11: user$run_test$fn__2580.invoke(NO_SOURCE_FILE:1)
12: clojure.java.jdbc.internal$with_connection_STAR_.invoke(internal.clj:156)
13: user$run_test.invoke(NO_SOURCE_FILE:1)
14: user$eval2645.invoke(NO_SOURCE_FILE:1)
15: clojure.lang.Compiler.eval(Compiler.java:5424)
16: clojure.lang.Compiler.eval(Compiler.java:5391)
17: clojure.core$eval.invoke(core.clj:2382)
18: swank.commands.basic$eval_region.invoke(basic.clj:47)
19: swank.commands.basic$eval_region.invoke(basic.clj:37)
20: swank.commands.basic$eval761$listener_eval__762.invoke(basic.clj:71)
21: clojure.lang.Var.invoke(Var.java:365)
22: user$eval2643.invoke(NO_SOURCE_FILE)
23: clojure.lang.Compiler.eval(Compiler.java:5424)
24: clojure.lang.Compiler.eval(Compiler.java:5391)
25: clojure.core$eval.invoke(core.clj:2382)
26: swank.core$eval_in_emacs_package.invoke(core.clj:92)
27: swank.core$eval_for_emacs.invoke(core.clj:239)
28: clojure.lang.Var.invoke(Var.java:373)
29: clojure.lang.AFn.applyToHelper(AFn.java:167)
30: clojure.lang.Var.applyTo(Var.java:482)
31: clojure.core$apply.invoke(core.clj:540)
32: swank.core$eval_from_control.invoke(core.clj:99)
33: swank.core$eval_loop.invoke(core.clj:104)
34: swank.core$spawn_repl_thread$fn__529$fn__530.invoke(core.clj:309)
35: clojure.lang.AFn.applyToHelper(AFn.java:159)
36: clojure.lang.AFn.applyTo(AFn.java:151)
37: clojure.core$apply.invoke(core.clj:540)
38: swank.core$spawn_repl_thread$fn__529.doInvoke(core.clj:306)
39: clojure.lang.RestFn.invoke(RestFn.java:397)
40: clojure.lang.AFn.run(AFn.java:24)
41: java.lang.Thread.run(Thread.java:662)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment