我是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的连接处理程序。
提前致谢。
答案 0 :(得分:0)
我建议您检查以下两个文件:
/etc/odbc.ini
和
/etc/odbcinst.ini
我遇到了类似的错误,但纠正这些值解决了我的问题:
我的odbc.ini中的数据:
[REQUIRED_SID]
驱动器= SOME_DRIVER_NAME
描述=
痕量=
服务器=
PORT =
数据库=
用户ID =
密码=
和odbcinst.ini
描述=
[SOME_DRIVER_NAME]
驱动器=
根据需要添加值。