Подключение к базе данных Oracle с использованием Ruby - PullRequest
7 голосов
/ 27 марта 2012

Я застрял при подключении к БД Oracle, прочитал много материала, но ничего не помогло с результатом.
У меня есть удаленная БД Oracle, я подключаюсь к ней, используя установочное соединение 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

Ответы [ 3 ]

8 голосов
/ 29 марта 2012

третий параметр должен быть именем хоста TNS, если вы используете SQL, плюс он также является третьим параметром в строке подключения, вы можете найти его также в файле tnsnames.ora в картах оракула

в SQLPlus: подключить пользователя / пароль @ имя хоста;
в oci8: conn = OCI8.new ('SomeUser', 'SomePass', имя хоста)

Здесь рабочий образец, запутал параметры курса

require 'oci8'
oci = OCI8.new('****','***','****.***')
oci.exec('select * from table') do |record|
  puts record.join(',')
end
0 голосов
/ 13 февраля 2016
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
0 голосов
/ 13 февраля 2016
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)")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...