2012-02-11 21 views
2

Linuxでerlangクライアントからoracleに接続する方法を知っている人はいますか? ODBCドライバが必要だと思います。erlangクライアントをoracleに接続

+0

スクロール可能なカーソルをOracleでオフにします。 odbcは '{scrollable_cursors、off}'オプションを接続します。 –

+0

私は下に掲示された答えを読む、それは本当に助けるべきである –

答えて

2

Erlangの文書ODBC is the way to goによると、

"Linuxを含むすべてのUnix方言で動作するはずのErlang ODBC APIがありますが、現在のところ、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は、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は接続文字列とオプションを要求します。オプションの中で、ほとんどのOracleドライバでは、スクロール可能なカーソルが必要になることに注意してください。次に、接続文字列で、有効なUID(ユーザー名)、パスワード、DSN(データソース名)、およびドライバ名を入力する必要があります。これらはすべて、上記の手順でWindows ODBC接続でDSNを作成したのとまったく同じです。

これは問題ありません。あなたはオラクルのドライバに自信を持ち、サードパーティのODBCオラクルドライバは避けてください。私は、他のサードパーティのドライバを使用した経験から、1,000万回の接続後に、ドライバがお金を買うことを要求し始める/ライセンスがあり、トラフィックがOracle DBに到達しないためです。

問題が発生した場合に備えてお知らせください。上のモジュールはちょっと荒いですが、それは単なるシェルテストモジュールなのでそのまま使わないでください。そうでなければ、Connectionオブジェクトを保持するgen_serverと言う必要があります。マシンにインストールされているOracle DBまたはクライアントを使用してデータソース名を設定することができれば、このモジュールを使用すると、ODBC接続を設定する際のほとんどの課題を解決できます。

=== Linux ===
Linuxの場合は、 Easy Soft ODBC DriversUnixODBCなどのodbcライブラリを入手する必要があります。その後、上記のウィンドウで行ったようにセットアップしてから、上記のErlangモジュールを使用してください。それでも動作するはずです。私は、ODBCライブラリを設定して設定する際の多くの課題(なぜなら、Unix ODBCやEasy Soft ODBCライブラリの設定では成功するかもしれない)のために、私はWindowsとLinuxからOracleに常に接続しているのではないかと思います。 Erlangの部分がソートされています。

+0

ありがとう、私は試して、更新プログラムを投稿します。 – kostas

関連する問題