Erlang 中的 Oracle DB 连接处理程序

Posted

技术标签:

【中文标题】Erlang 中的 Oracle DB 连接处理程序【英文标题】:Oracle DB connection handler in Erlang 【发布时间】:2015-05-02 13:33:30 【问题描述】:

我是 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: 异常错误:右侧值不匹配 error, "[unixODBC][Driver Manager]Data source name not found, and no default driver specified SQLSTATE IS: 00000 Connection to database failed."

谁能解释一下如何在 erlang 中建立到 oracle DB 的连接处理程序。

提前致谢。

【问题讨论】:

【参考方案1】:

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

/etc/odbc.ini

/etc/odbcinst.ini

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

我的 odbc.ini 中的数据:

[REQUIRED_SID]

Driver=SOME_DRIVER_NAME

描述=

追踪=

服务器=

端口=

数据库=

用户 ID=

密码=

在 odbcinst.ini 中

描述=

[SOME_DRIVER_NAME]

司机=

根据需要添加值。

【讨论】:

以上是关于Erlang 中的 Oracle DB 连接处理程序的主要内容,如果未能解决你的问题,请参考以下文章

DB2 与 Oracle 中的查询

Oracle DB 使用连接显示多个表中的数据

erlang处理mongodb日期时间格式data类型

处理 Oracle DB 存储的 Java 类中的异常

Erlang 作为后端进程

WSO2 流处理器,将数据库与 Oracle DB 集成,它不起作用