1

我是 erlang 的新手,抱歉,我可能遗漏了一些非常小的东西。我正在尝试以下代码,用于在 Erlang 中以红帽形式将数据库处理程序用于 oracle。

#!/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][驱动程序管理器]找不到数据源名称,并且没有指定默认驱动程序 SQLSTATE IS:00000 与数据库的连接失败。”}

有人可以解释如何在 erlang 中建立与 oracle DB 的连接处理程序。

提前致谢。

4

1 回答 1

0

我建议您检查以下两个文件:

/etc/odbc.ini

/etc/odbcinst.ini

我遇到了类似的错误,但更正这些值解决了我的问题:

我的 odbc.ini 中的数据:

[REQUIRED_SID]

驱动程序=SOME_DRIVER_NAME

说明=

跟踪=

服务器=

端口=

数据库=

用户名=

密码=

在 odbcinst.ini 中

说明=

[SOME_DRIVER_NAME]

司机=

根据需要添加值。

于 2015-10-05T09:52:04.623 回答