使用Ruby连接到Oracle DB

我很难连接到Oracle DB,已经阅读了很多东西,但没有结果的帮助。
我有远程Oracle DB,我使用DBVisualizer设置连接连接到它,如下所示:

DB Type : Oracle Driver (jdbc) : Oracle thin Database URL: jdbc:oracle:thin:@10.10.100.10:1521/VVV.LOCALDOMAIN UserIdf: SomeUser Pass: SomePass 

连接正常。

我在Ruby中做的是:

 require 'oci8' require 'dbi' ... conn = OCI8.new('SomeUser','SomePass','//10.10.100.10:1521/VVV.LOCALDOMAIN') ... 

我得到的是:

 ORA-12545: Connect failed because target host or object does not exist oci8.c:360:in oci8lib.so 

第三个参数需要是TNS主机名,如果使用SQL加上它也是连接字符串中的第三个参数,你也可以在oracle地图的tnsnames.ora文件中找到它。

在SQLPlus中: connect user / password @ hostname;
在oci8: conn = OCI8.new(’SomeUser’,’SomePass’,主机名)

这里有一个工作样本,当然是模糊了参数

 require 'oci8' oci = OCI8.new('****','***','****.***') oci.exec('select * from table') do |record| puts record.join(',') end 
 require 'oci8' oci = OCI8.new('system','prasad','127.0.0.1:1521') oci.exec("CREATE TABLE states1 ( id CHAR(2) PRIMARY KEY, name VARCHAR2(15) NOT NULL, capital VARCHAR2(25) NOT NULL)") 
 require 'oci8' oci = OCI8.new('system','prasad','127.0.0.1:1521') oci.exec("insert into states1 values(1,'prasad','visakhapatnam')") oci.exec("commit") oci.exec('select * from states1') do |record| puts record.join(',') end 
Interesting Posts