Названия 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-имена не отображаются в качестве параметров.

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

Ответ 1

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 должны отображаться здесь.

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

enter image description here

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

enter image description here

Вы сделали!

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

Ответ 5

Шаги, упомянутые Джейсоном, очень хороши и должны работать. Тем не менее, есть небольшой поворот в 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 будет рассматривать в качестве чувствительного к регистру содержимое форматированного файла формата, явно нечувствительного к регистру?

Ответ 6

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

Ответ 7

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