成功使用ruby-oci8与AIX(没有ORA-12537)

时间:2015-01-11 21:02:36

标签: ruby oracle oci

是否有人在AIX上成功使用当前(2.1.7)版本的ruby-oci8针对Oracle?

我可以运行我的ruby-oci8测试脚本,让它针对Linux的TNS和Windows的TNS而不是AIX。

但是,它不是Oracle Instant Client问题,我可以从我的机器到Oracle(TNS for AIX)服务器执行命令行sqlplus连接,它运行正常。但是,当我将它包装在ruby脚本中时(使用ruby 1.8.7),它失败了:

oci8.c:513:in oci8lib.so: ORA-12537: TNS:connection closed (OCIError)
from /usr/lib64/ruby/gems/1.8/gems/ruby-oci8-2.1.7/lib/oci8/oci8.rb:148:in initialize' from app/controllers/testdb.rb:32:innew'
from app/controllers/testdb.rb:32

我这里没有做任何聪明的事情,只是创建一个像这样的新连接:

conn = OCI8.new(username, password)

关于此的任何信息都会很棒,我还没有尝试过数据包嗅探 - 但是......

-John

1 个答案:

答案 0 :(得分:0)

我最终得到了这个工作,简短的回答是我使用完整的连接字符串成功,即: OCI8.new("用户/密码@(介绍=(地址=(协议= TCP)(主机= host.uab.edu)(端口= 1521))(CONNECT_DATA =(SID = somesid)))&# 34)

令人困惑的部分是API中没有提到这种格式,我必须使用sid = of service_name =。

详细信息如下: https://github.com/kubo/ruby-oci8/issues/66