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

81

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

Есть ли что-то, что мне не хватает?

Теги:
database
oracle-sqldeveloper
tns
tnsnames

7 ответов

159
Лучший ответ

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

  • $HOME/.tnsnames.ora
  • $TNS_ADMIN/tnsnames.ora
  • TNS_ADMIN ключ поиска в реестре
  • /etc/tnsnames.ora(не-окна)
  • $ORACLE_HOME/сети/администратор/tnsnames.ora
  • LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME_KEY
  • LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME

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

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

    В Windows это делается с помощью панели управления > Системa > Расширенные системные настройки > Переменные среды...

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

  • Подтвердить, что os распознает эту переменную окружения

    В командной строке Windows: echo% TNS_ADMIN%

    Из linux: echo $TNS_ADMIN

  • Перезагрузите SQL Developer

  • Теперь в SQL Developer щелкните правой кнопкой мыши на Connections и выберите New Connection.... Выберите TNS в качестве типа подключения в раскрывающемся списке. Теперь ваши записи из tnsnames.ora должны отображаться здесь.
  • 1
    Для меня: $ HOME / .tnsnames.ora не работал ... Я использовал вместо этого $ HOME / tnsnames.ora. Также обратите внимание: вам нужно будет перейти в Сервис -> Настройки, найти «tns» и указать каталог на $ HOME.
  • 0
    Несмотря на то, что это было в заметках о выпуске для версии SQL Developer 1.5, я обнаружил, что на Ubuntu 12.04 LTS работает только # 5 . Попробуйте эти шаги, чтобы проверить, если это ваш случай: forums.oracle.com/message/2769285#2769285 . Примечательно : у автора возникла проблема на Win Vista.
Показать ещё 3 комментария
29

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

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

  • 0
    Это самое простое решение, и оно работает
  • 0
    Принятый ответ не работает для меня, но это сработало (Windows Server 2008R2)
12

Вы всегда можете узнать местоположение файла 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 используется в системах с несколькими домами оракула. ​​

  • 0
    Как я могу установить инструмент Tnsping?
  • 0
    В клиентской установке есть флажок для Database Tools или чего-то подобного.
11

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

Изображение 7136

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

Изображение 7148

Вы сделали!

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

  • 0
    Не могу найти "Databse: Advanced" ==> моя версия 1.5.5
  • 1
    Для версий ниже 2.1 или если вы не указали каталог Tnsnames в версии 2.1 или выше, следуйте инструкциям, приведенным в ответе @JasonAnderson .
Показать ещё 1 комментарий
2

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

  • 0
    @allen: знаете, как заставить этот список очистить? Если это так, пожалуйста, ответьте на stackoverflow.com/q/6412559/168646
1

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

0

Ни одно из перечисленных изменений не имело никакого значения в моем случае. Я мог запустить TNS_PING в командном окне, но SQL Developer не смог понять, где 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 в дополнительных настройках базы данных, на которые ссылаются другие сообщения.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню