Domanda

Come posso iniziare?

È stato utile?

Soluzione

Ho trovato il modo più semplice per raggiungere questo obiettivo utilizzando Clojure.Ecco il codice di esempio:


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

(Def devdb {: classname "oracle.jdbc.driver.oracledriver": subprotocol "Oracle": subname "thin: nome utente/password@localhost: 1509: devdb": crea true})

(DEFN EXEC-ORA-STORED-PROC [input-param db callback] (sql/with-connection db (with-open [stmt (.preparacall (sql/connection) "{chiama qualche_schema.some_package.test_proc (?,?,? ?)} ")] (doto stmt (.setIt 1 input-param) (.registeroutparameter 2 tipi/integer) (.registeroutparameter 3 oracle.jdbc.driver.oracleTypes/cursore) (.execute)) (callback (.stmt getInt 2) (.stmt getObject 3)))))

(Exec-Ora-Stord-Proc 123 ;; Valore Param input DevDB (FN [ERR-CODE RES-Cursor] (println (STR "ret_code:"err-code)) ;;Stampe restituite RIFURSOR ROWS (let [ResultSet (ResultSet-Seq Res-Cursor)] (doseq [rectset] (println rec))))))

Altri suggerimenti

Avrai bisogno di un'interfaccia per il database Oracle SQL.Come ha sottolineato Bob, Allegro CL dispone di tale interfaccia.

Apparentemente GNU CLISP viene fornito con un'interfaccia anche per il database.

Il modo più semplice per eseguire operazioni Oracle dal tuo programma Common Lisp è utilizzare CLSQL.Ci sono molti altri pacchetti per fare cose con i database di Common Lisp.Dai un'occhiata a Pagina del database di Cliki

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top