Назад | Перейти на главную страницу

Список имен удаленных служб Oracle

Некоторое программное обеспечение, которое я пишу, должно запрашивать базу данных оракула - администратор базы данных отсутствует на некоторое время, поэтому все, что мне нужно, - это некоторый исходный код из другого приложения, которое подключается к той же базе данных (и я даже не уверен, что это ток). Строка подключения java выглядит так:

jdbc: oracle: thin: @ 101.010.101.010: 1521: srip

Что мне говорит документация jdbc, означает, что адрес / порт сервера - 101.010.101.010:1521, а «имя службы» - srip. Я создал соответствующую запись в tnsnames.ora, которая выглядит так:

mydb=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 101.010.101.010)(PORT = 1521))
    (CONNECT_DATA =
     (SERVICE_NAME = srip)
    )
  )

В диалоговом окне конфигурации ODBC клиент oracle находит запись mydb и перечисляет ее в поле «Имя службы TNS». Когда я пытаюсь «проверить соединение», он немедленно возвращается с ошибкой ORA-12514: TNS: прослушиватель в настоящее время не знает службы, запрошенной в подключенном decsriptor. Полагаю, это означает, что запись SERVICE_NAME неверна, возможно, она была изменена. Есть ли способ узнать, какие имена служб доступны на удаленном сервере, к которому у меня нет другого доступа?

Да, вы можете делать такие вещи, но вам потребуется либо разрешение на сервере базы данных, либо знание пароля слушателя (если он был установлен).

До этого вы могли:

  1. Отредактируйте свой tns.ora и замените "SERVICE_NAME" вместо "SID".
  2. Проверьте свой файл sqlnet.ora на предмет неправильной директивы DEFAULT_DOMAIN.