Question

Comment puis-je commencer?

Était-ce utile?

La solution

J'ai trouvé le moyen le plus simple d'y parvenir en utilisant Clojure. Voici l'exemple de code:


(ns example
  (:require [clojure.contrib.sql :as sql])
  (:import  [java.sql Types]))

(def devdb {:classname "oracle.jdbc.driver.OracleDriver" :subprotocol "oracle" :subname "thin:username/password@localhost:1509:devdb" :create true})

(defn exec-ora-stored-proc [input-param db callback] (sql/with-connection db (with-open [stmt (.prepareCall (sql/connection) "{call some_schema.some_package.test_proc(?, ?, ?)}")] (doto stmt (.setInt 1 input-param) (.registerOutParameter 2 Types/INTEGER) (.registerOutParameter 3 oracle.jdbc.driver.OracleTypes/CURSOR) (.execute)) (callback (. stmt getInt 2) (. stmt getObject 3)))))

(exec-ora-stored-proc 123 ;;input param value devdb (fn [err-code res-cursor] (println (str "ret_code: " err-code)) ;; prints returned refcursor rows (let [resultset (resultset-seq res-cursor)] (doseq [rec resultset] (println rec)))))

Autres conseils

Vous aurez besoin d’une interface avec la base de données Oracle SQL. Comme Bob l'a souligné, Allegro CL dispose d'une telle interface.

GNU CLISP est apparemment livré avec une interface vers la base de données.

Le moyen le plus simple de réaliser des tâches Oracle à partir de votre programme Common Lisp consiste à utiliser CLSQL . Il y a beaucoup d'autres paquets pour faire des choses avec les bases de données de Common Lisp. Consultez la page de base de données de Cliki

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top