Имена Oracle TNS не отображаются при добавлении нового подключения к SQL Developer

Я пытаюсь подключиться к базе данных Oracle с помощью SQL Developer.

Я установил драйверы .Net oracle и поместил файл tnsnames.ora в
C:\Oracle\product\11.1.0\client_1\Network\Admin

Я использую следующий формат в tnsnames.ora:

dev =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = idpdev2)
    )
  )

В SQL Developer, когда я пытаюсь создать новое соединение, имена TNS не отображаются в качестве параметров.

Что-то мне не хватает?


person Americus    schedule 08.01.2009    source источник


Ответы (7)


SQL Developer будет искать файл tnsnames.ora в следующем месте в указанном порядке.

  1. $ HOME / .tnsnames.ora
  2. $ TNS_ADMIN / tnsnames.ora
  3. Ключ поиска TNS_ADMIN в реестре
  4. /etc/tnsnames.ora (не для Windows)
  5. $ ORACLE_HOME / сеть / администратор / tnsnames.ora
  6. LocalMachine \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ ORACLE \ ORACLE_HOME_KEY
  7. LocalMachine \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ ORACLE \ ORACLE_HOME

Чтобы узнать, какой из них использует SQL Developer, введите команду show tns на листе

Если ваш файл tnsnames.ora не распознается, используйте следующую процедуру:

  1. Определите переменную среды с именем TNS_ADMIN, чтобы указать на папку, содержащую ваш файл tnsnames.ora.

    В Windows это можно сделать, перейдя в Панель управления> Система> Дополнительные системные настройки> Переменные среды ...

    В Linux определите переменную TNS_ADMIN в файле .profile в вашем домашнем каталоге.

  2. Убедитесь, что операционная система распознает эту переменную среды.

    Из командной строки Windows: echo% TNS_ADMIN%

    Из Linux: echo $ TNS_ADMIN

  3. Перезапустите SQL Developer

  4. Теперь в SQL Developer щелкните правой кнопкой мыши Connections и выберите New Connection .... В раскрывающемся списке выберите TNS в качестве типа подключения. Здесь должны отображаться ваши записи с tnsnames.ora.
person JaseAnderson    schedule 08.01.2009
comment
Для меня: $ HOME / .tnsnames.ora не сработало ... Вместо этого я использовал $ HOME / tnsnames.ora. Также обратите внимание: вам нужно будет перейти в Инструменты - ›Настройки, найти tns и указать каталог на $ HOME. - person Ryan Delucchi; 15.12.2012
comment
Несмотря на то, что это указано в примечаниях к выпуску версии 1.5 для разработчиков SQL, я обнаружил, что в Ubuntu 12.04 LTS работает только № 5. Попробуйте выполнить следующие действия, чтобы убедиться, что это ваш случай: forum.oracle.com/message/2769285#2769285 < / а>. Примечательно: у автора возникла проблема на Win Vista. - person LAFK says Reinstate Monica; 06.08.2013
comment
У меня работал в винде. Постоянно записывать вещи FTW! - person Isaac; 06.11.2013
comment
Установка TNS_ADMIN у меня не сработала. Вместо этого я поискал на компьютере все файлы TNSNAMES и обновил их содержимое. Понятия не имею, почему разработчик Windows 7 Sql упорно продолжал использовать какой-то другой файл TNSNAMES в какой-то старой папке. - person Ben; 17.07.2014
comment
Примечание. $TNS_ADMIN - это КАТАЛОГ, а не сам .ora файл. - person geneorama; 18.09.2018
comment
Я обнаружил, что переменной env для TNS_ADMIN нужен путь, заканчивающийся косой чертой. Без завершающей косой черты разработчик SQL не смог бы увидеть файл tnsnames.ora. - person AaronLS; 31.05.2019

Откройте SQL Developer. Перейдите в Инструменты -> Настройки -> Базы данных -> Дополнительно. Затем явно установите каталог Tnsnames.

Мой TNSNAMES был настроен правильно, и я мог подключиться к Toad, SQL * Plus и т. Д., Но мне нужно было сделать это, чтобы заставить SQL Developer работать. Возможно, это была проблема с Win 7, так как ее также было сложно установить.

person Paul Mattey    schedule 09.08.2011
comment
Принятый ответ не сработал для меня, но это сработало (Windows Server 2008R2) - person Josh Werts; 09.06.2015
comment
Была та же проблема, но разработчик SQL также просматривал% userprofile% \ tnsnames.ora до% TNS_ADMIN% \ tnsnames.ora, и именно там у меня был дополнительный файл tnsnames.ora. - person MBWise; 30.06.2020

В SQLDeveloper просмотрите Tools --> Preferences, как показано на изображении ниже.

  введите описание изображения здесь

В параметрах Настройки expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory, где присутствует tnsnames.ora.
Затем нажмите ОК .
как показано на диаграмме ниже.

введите описание изображения здесь

Готово!

Теперь вы можете подключиться с помощью параметров TNSnames.

person Chandra Sekhar    schedule 23.07.2012
comment
Не могу найти Databse: Advanced == ›моя версия 1.5.5 - person Tarek El-Mallah; 29.01.2013
comment
Для версий ниже 2.1 или если вы не указали каталог Tnsnames в версии 2.1 или выше, следуйте инструкциям, указанным в ответ @JasonAnderson. - person Chandra Sekhar; 29.01.2013
comment
У меня нет опции Tnsnames Directory в меню Инструменты- ›Настройки-› Databaes- ›Расширенные параметры. Я использую SqlDeveloper v1.1.3 - person Ahmedov; 24.09.2013

Вы всегда можете узнать расположение используемого файла tnsnames.ora, запустив TNSPING для проверки подключения (9i или новее):

C:\>tnsping dev

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)

C:\>

Иногда проблема заключается в записи, которую вы сделали в tnsnames.ora, а не в том, что система не может ее найти. Тем не менее, я согласен с тем, что наличие набора переменных среды tns_admin - это хорошая вещь, поскольку она позволяет избежать неизбежных проблем, возникающих при точном определении того, какой файл tnsnames используется в системах с несколькими домами оракулов.

person DCookie    schedule 08.01.2009
comment
как я могу установить инструмент tnsping ?? - person Kiquenet; 10.01.2011
comment
В клиентской установке есть флажок для инструментов базы данных или чего-то подобного. - person DCookie; 20.05.2011

Шаги, упомянутые Джейсоном, очень хороши и должны работать. Однако с SQL Developer есть небольшая хитрость. Он кэширует спецификации подключения (хост, имя службы, порт) при первом чтении файла tnsnames.ora. Тогда это не делает спецификации недействительными, когда исходная запись удаляется из файла tnsname.ora. Кеш сохраняется даже после завершения работы и перезапуска SQL Developer. Это не такой уж нелогичный способ выхода из ситуации. Даже если файл tnsnames.ora временно недоступен, SQL Developer все равно может установить соединение, пока исходные спецификации остаются верными. Проблема заключается в следующем небольшом повороте. SQL Developer обрабатывает имена служб в файле tnsnames.ora как значения с учетом регистра при разрешении соединения. Поэтому, если раньше у вас было имя записи ABCD.world в файле и вы заменили ее новой записью с именем abcd.world, SQL Developer НЕ будет обновлять свои спецификации подключения для ABCD.world - он будет рассматривать abcd.world как другой соединение в целом. Почему меня не удивляет, что продукт Oracle будет рассматривать как чувствительное к регистру содержимое файла формата, разработанного Oracle, который явно не чувствителен к регистру?

person Community    schedule 13.04.2010
comment
@allen: вы знаете, как заставить его очистить этот список? Если да, ответьте на stackoverflow.com/q/6412559/168646 - person David Oneill; 20.06.2011

В Sql Developer перейдите к Tools-> preferences-> Datababae-> advanced-> Установите каталог Tnsname в каталог, содержащий tnsnames.ora

person B Chowdhary    schedule 22.05.2012

Ни одно из вышеперечисленных изменений не имело никакого значения в моем случае. Я мог запустить TNS_PING в командном окне, но разработчик SQL не смог определить, где находится tnsnames.ora.

В моем случае (Windows 7 - 64-разрядная версия - Enterprise) проблема заключалась в том, что установщик Oracle указал ярлык меню «Пуск» на неправильную версию SQL Developer. Похоже, что установщик сопровождает три экземпляра SQL Developer. Один находится в% ORACLE_HOME% \ client_1 \ sqldeveloper \, а два - в% ORACLE_HOME% \ client_1 \ sqldeveloper \ bin \.

Установщик установил ярлык меню «Пуск», который указывал на версию в каталоге bin, которая просто не работала. Он запрашивал пароль каждый раз, когда я запускал SQL Developer, не запомнил сделанный мной выбор и отображал пустой список, когда я выбрал TNS в качестве механизма подключения. У него также нет поля TNS Directory в расширенных настройках базы данных, на которое есть ссылки в других сообщениях.

Я выбросил старый ярлык «Пуск» и установил ярлык для% ORACLE_HOME% \ client_1 \ sqldeveloper \ sqldeveloper.exe. Это изменение устранило проблему в моем случае.

person Michael    schedule 24.03.2014