Строка подключения Oracle EasyConnect с использованием SID?

Я пытаюсь подключиться к базе данных 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 ответ

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

SQL> show parameter service

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

SQL> 

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

Другие вопросы по тегам