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

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

Я установил драйверы .NET oracle и разместил на
C:Oracleproduct.1.0client_1NetworkAdmin

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

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

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

Я что-то упускаю?

7 ответов


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

  1. $ HOME/.файл tnsnames.Ора!--5-->
  2. $TNS_ADMIN / tnsnames.Ора!--5-->
  3. tns_admin ключ поиска в реестре
  4. / etc / tnsnames.ora (не-windows )
  5. $ORACLE_HOME, т./сети/администратор/файла tnsnames.Ора!--5-->
  6. LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME_KEY
  7. LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME

посмотреть какой разработчик SQL использует, введите команду show tns в таблице

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

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

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

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

  2. подтвердите, что ОС распознает эту переменную окружающей среды

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

    из linux: echo $TNS_ADMIN

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

  4. теперь в SQL Developer щелкните правой кнопкой мыши on подключения и выберите Новое Подключение.... Выберите TNS тип соединения в выпадающем списке. Ваши записи из файла tnsnames.теперь ora должна отображаться здесь.

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

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


вы всегда можете узнать местоположение 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.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.Ора, не то, чтобы система не могла его найти. Тем не менее, я согласен, что наличие набора переменных среды tns_admin является хорошей вещью, поскольку это позволяет избежать неизбежных проблем, которые возникают при определении того, какой файл tnsnames используется в системах с несколькими oracle родной кров.


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

enter image description here

В предпочтения опции expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory здесь tnsnames.Ора!--4--> присутствует.
затем нажмите на кнопку Ok.
как показано в ниже диаграмме.

enter image description here

вы сделали!

теперь вы можете подключиться через файл tnsnames параметры.


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


в SQL Developer, navidate to Tools - >preferences->Datababae->дополнительно - >установить каталог Tnsname в каталог, содержащий tnsnames.Ора!--1-->


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

проблема в моем случае (Windows 7 - 64 bit - 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.исполняемый. Это изменение исправило проблему в моем случае.