1

私はerlangを初めて使用します。申し訳ありませんが、非常に小さなものが欠けている可能性があります。赤帽で、ErlangのOracleへのDBハンドラーの次のコードを試しています。

#!/usr/bin/env escript
-module(test).
-compile(export_all).

-define(CONNECT_OPTIONS,[
                {auto_commit, on},
                {scrollable_cursors, off},
                {trace_driver, on}
            ]).
-define(CONNECT_STRING,"DSN=oracle10g;DBQ=*******;UID=********;PWD=********").

main(_)->
    odbc:start(),
    {ok, ConnObj} = odbc:connect(?CONNECT_STRING,?CONNECT_OPTIONS),
        io:format(ConnObj).

UNIX odbc と oracle シン クライアントがインストールされています。それぞれの DSN は /etc/odbc.ini ファイルと ~/.odbc.ini ファイルでも宣言されています。

しかし、次のエラーが発生します。

escript: 例外エラー: 右側の値が一致しません {エラー、"[unixODBC][Driver Manager]Data source name not found, and no default driver specified SQLSTATE IS: 00000 データベースへの接続に失敗しました。"}

誰かが erlang で oracle DB への接続ハンドラを確立する方法を説明してもらえますか?

前もって感謝します。

4

1 に答える 1

0

次の 2 つのファイルを確認することをお勧めします。

/etc/odbc.ini

/etc/odbcinst.ini

同様のエラーが発生していましたが、これらの値を修正すると問題が解決しました。

私のodbc.iniのデータ:

[必須_SID]

ドライバー=SOME_DRIVER_NAME

説明=

トレース=

サーバー=

ポート=

データベース=

ユーザーID=

パスワード=

そしてodbcinst.iniで

説明=

[SOME_DRIVER_NAME]

ドライバー=

必要に応じて値を追加します。

于 2015-10-05T09:52:04.623 に答える