문제

어떻게 시작하나요?

도움이 되었습니까?

해결책

저는 Clojure를 사용하여 이를 달성하는 가장 쉬운 방법을 찾았습니다.예제 코드는 다음과 같습니다.


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

(def devdb {: classname "oracle.jdbc.driver.oracledriver": 서브 프로토콜 "Oracle": 서브 이름 "Thin : username/password@localhost : 1509 : devdb": true}).

(defn exec-ora 저장 프로그램 [input-param db 콜백] (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)) (콜백 (콜백).stmt getInt 2) (.stmt getObject 3)))))

(Exec-Ora 저장 프로그램 123 ;; 입력 PARAM 값 DEVDB (fn [err-code res-cursor] (println (str "ret_code :"err-code)) ;;인쇄 된 반환 된 REFCURSOR 행

다른 팁

Oracle SQL 데이터베이스에 대한 인터페이스가 필요합니다.Bob이 지적했듯이 Allegro CL에는 이러한 인터페이스가 있습니다.

GNU CLISP에는 데이터베이스에 대한 인터페이스도 함께 제공되는 것 같습니다.

Common Lisp 프로그램에서 Oracle 작업을 수행하는 가장 간단한 방법은 다음을 사용하는 것입니다. CLSQL.Common Lisp의 데이터베이스로 작업을 수행하기 위한 다른 패키지가 많이 있습니다.보세요 Cliki의 데이터베이스 페이지

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top