2012-02-11 4 views
2

Linux의 erlang 클라이언트에서 oracle에 연결하는 방법을 아는 사람이 있습니까? ODBC 드라이버가 필요합니다.erlang 클라이언트를 oracle에 연결하십시오.

+0

스크롤 가능한 커서를 oracle로 유지하십시오. odbc는'{scrollable_cursors, off} 옵션을 연결합니다. –

+0

아래에 게시 한 답변을 읽어보십시오. 도움이되어야합니다. –

답변

2

Erlang 설명서 ODBC is the way to go에 따르면.

Erlang ODBC API가 있습니다. "Linux를 포함한 모든 유닉스 사투리에서 실행해야하지만 .... 현재 Solaris, Windows 2000, Windows XP 및 NT에서만 테스트됩니다." Find out more.

Linux 용 ODBC 드라이버가 있습니다. 운이 좋으면 배포판에 이미 설치되어있을 것입니다. Find out more.

+0

정말요? Erlang에 네이티브 DB 드라이버가 실제로 있습니까? –

0

==== 답변은 Windows의 경우 매우 유용 할 수 있지만 Linux에 대한 유용한 정보도 포함 할 수 있습니다.

이제 oracle 클라이언트 또는 oracle 데이터베이스 자체를 다운로드해야합니다. 여기에서 설치하십시오 : http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html. 오라클은 oracle이라는 폴더 (Windows)를 설치하고 생성합니다. 이 폴더 안에는 보통 $ HOME 폴더가 있습니다 (C:\oracle\product\10.2.0\db_1). 따라서 Windows에있는 경우, 다음을 읽음으로써 ODBC 구성에 액세스 할 때 : http://ozinisle.blogspot.com/2011/10/configuring-odbc-connection-for-oracle.html 다음에 새로운 Data Source Name (DSN)을 만듭니다. 단계는 대략 다음과 같습니다 :
1. 시스템 DSN
선택 2. 새 데이터 소스 생성
3. 아래로 스크롤하여 OraDB {Vsn} _home1
에서 Oracle을 선택하십시오. 4. 사용자 이름 (UID), 암호
을 지정하십시오. 선택한 드라이버 이름, 입력 한 데이터 소스 이름을 메모하십시오.
6. 연결을 테스트하고 창문이 제대로 표시되는지 확인하십시오.

이제,이 후, 우리는 erlang쪽으로갑니다. 이 모듈을 살펴보면 oracle과의 통신에서 시작해야합니다.

 
-module(oracle_client). 
-compile(export_all).
-define(CONNECT_OPTIONS,[ {auto_commit,on}, {scrollable_cursors, off} ]). -define(CONNECT_STRING,"DSN=data_source;UID=uid;PWD=password;DRIVER=Oracle in OraDb10g_home1").

connect()-> odbc:start(), try odbc:connect(?CONNECT_STRING,?CONNECT_OPTIONS) of {ok,ConnObject} -> {true,ConnObject}; Any -> {error,Any} catch E:E2 -> {exception,{E,E2}} end.
send_sql(ConnObject, SQLQuery)-> odbc:sql_query(ConnObject, SQLQuery).

Erlang ODBC 서버가 먼저 실행되어야합니다. Erlang ODBC는 연결 문자열과 옵션을 묻습니다. 옵션에서 우선 대부분의 오라클 드라이버는 스크롤 가능한 커서가 필요합니다. 그런 다음 연결 문자열에서 올바른 UID (사용자 이름), 암호, DSN (데이터 원본 이름) 및 드라이버 이름을 입력해야합니다. 위의 단계에서 Windows ODBC 연결에서 DSN을 만든 것과 같습니다.

괜찮습니다. 오라클 드라이버를 사용하고 타사 ODBC Oracle 드라이버를 사용하지 않아야합니다. 나는 말하기를, 1 천만 개의 연결 이후, 운전자가 돈을 요구하기 시작하기 때문에/라이센스를 얻고 오라클 DB에 도달하는 트래픽을 차단하기 때문에 다른 써드 파티 드라이버를 사용하는 데 어려움을 겪었습니다.

문제가 발생할 경우를 대비하여 알려주십시오. 위의 모듈은 약간 거친 것입니다. 단지 쉘 테스트 모듈이기 때문에 사용하지 마십시오. 그렇지 않으면 연결 처리 객체를 보유 할 gen_server가 필요하므로 다른 처리가 계속 통신 할 수 있습니다. 머신에 설치된 Oracle DB 또는 클라이언트를 사용하여 데이터 소스 이름을 성공적으로 설정하는 경우이 모듈을 사용하면 ODBC 연결을 설정하는 데있어 많은 어려움이 있습니다.

=== Linux ===
Linux의 경우 Easy Soft ODBC Drivers 또는 UnixODBC과 같은 ODBC 라이브러리를 가져와야합니다. 그런 다음 위의 창에서와 같이 설정 한 다음 위에 제공된 Erlang 모듈을 사용하십시오. 여전히 작동해야합니다. ODBC 라이브러리를 설정하고 구성하는 데 많은 어려움을 겪고 있기 때문에 Windows와 Linux에서 오라클에 항상 연결되어 있습니다 (Unix ODBC 또는 Easy Soft ODBC 라이브러리를 설정하는 데 성공할 수 있습니다). 그렇지 않으면 Erlang 부분이 분류됩니다.

+0

감사합니다. 업데이트를 게시하려고합니다. – kostas

관련 문제