2015-03-02 38 views
1

我是erlang的新手,对不起,我可能会丢失一些非常小的东西。我正在尝试下面的代码来处理Erlang中的oracle数据库处理程序。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数据库的连接处理程序。

在此先感谢。

回答

0

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

/etc/odbc.ini

/etc/odbcinst.ini

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

我的odbc.ini中的数据:

[REQUIRED_SID]

驱动= SOME_DRIVER_NAME

描述=

痕量=

服务器=

PORT =

数据库=

用户ID =

密码=

和ODBCINST.INI

描述=根据需要

[SOME_DRIVER_NAME]

驱动=

添加值。