Строка подключения 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 - это / или имена служб, под которыми зарегистрирована база данных.