Строка подключения Oracle EasyConnect с использованием SID? - PullRequest
7 голосов
/ 10 января 2011

Я пытаюсь подключиться к базе данных Oracle с помощью кода (Ruby / DBI, но это не имеет значения) с использованием строки подключения EasyConnect.Во всей документации Oracle говорится, что нужно указывать строку подключения как // имя хоста: порт / имя_службы.У меня нет service_name для базы данных, к которой мне нужно подключиться, вместо этого у меня есть SID.Есть ли способ создать строку подключения EasyConnect, используя SID вместо имени службы?

Мой код подключения выглядит так:

DBI.connect("DBI:OCI8://localhost:9000/the_sid", "username here", "password here")

Я продолжаю пытатьсяразные вещи, и в зависимости от того, что я пытаюсь, я получаю одно из двух сообщений об ошибках:

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor (DBI::DatabaseError)
ORA-12154: TNS:could not resolve the connect identifier specified (DBI::DatabaseError)

1 Ответ

3 голосов
/ 10 января 2011

Вы использовали SID в качестве имени СЕРВИСА?Обычно вы можете указать SID, где запрашивается услуга.SERVICE_NAMES обычно использует SID по умолчанию.В командной строке SQL введите:

SQL> show parameter service

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      sid

SQL> 

Значения в столбце VALUE - это имена служб, в которых база данных зарегистрирована как.

...