ORA-12545: Ошибка подключения, поскольку целевой хост или объект не существует - PullRequest
2 голосов
/ 26 января 2011

Кто-нибудь сталкивался с этой ошибкой раньше?Я пытался сослаться на эту ссылку: http://www.ardentperf.com/2007/04/02/local_listener-and-ora-12545/

Но это не решает нашу проблему.Наш сценарий состоит в том, что мы можем подключиться к базе данных, однако мы столкнемся с этой ошибкой при попытке выбрать данные из представления.

Я включил трассировку sqlnet на стороне клиента, но не могу интерпретироватьточная причина проблемы.

Любые идеи кто-нибудь?

Спасибо

Ответы [ 3 ]

2 голосов
/ 28 сентября 2016

Для меня проблема была в том, что HOST не был обнаружен по имени в TNSNAMES.ora, и вместо этого решил его с помощью IP-адреса (думаю, это связано с проблемой контроллера домена):

XYZD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 123.45.67.89)(PORT = 1521))
    (CONNECT_DATA = (SERVICE_NAME = XYZD))
  )

Выполните команду «ping HOST», чтобы найти IP-адрес сервера.

  • PING HOST
  • Порт телефона TELNET
  • TNSPING TNS_ALIAS

Edit:

Просто столкнулся с этим снова, на этот раз это был Брандмауэр, блокирующий TCP через порт.

0 голосов
/ 13 марта 2019

У меня тоже была эта проблема, и поскольку я не использовал файл tnsnames.ora, я почти потерял надежду, когда наступил на эту ссылку .
Итак, теперь мой код выглядитthis:

import cx_Oracle 
connection_string = '''username/password@(DESCRIPTION=
                                            (ADDRESS_LIST=
                                                (ADDRESS=
                                                    (PROTOCOL=TCP)
                                                    (HOST=<host_name>)
                                                    (PORT=<port_numer>)
                                                )
                                            )
                                            (CONNECT_DATA=
                                                (SID=<your_SID>)
                                            )
                                        )'''
db = cx_Oracle.connect(connection_String)

Теперь вы можете создать курсор и написать запрос.
Примечание. Это не рекомендуемая практика, но я использовал ее только для тестирования.

0 голосов
/ 30 мая 2012

Эта проблема может быть несколько:

1.Ваш TNSNAMES.ora не обновлен

Исправление: найдите свой каталог Oracle Home Find: / network / ADMIN /

TNSNAMES.ora должен быть там, если вывозникла эта проблема на локальном компьютере

2.Создать переменную среды TNS_ADMIN

В моем случае:

Имя переменной: TNS_ADMIN

Значение: C: \ Programs \ Ora10g \ network \ ADMIN

В целях тестирования попробуйте подключиться к БД Oracle с помощью sqlplus (возможно, вы уже пробовали это).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...