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

StackOverflow https://stackoverflow.com/questions/425029

Вопрос

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

Я установил драйверы .Net oracle и разместил файл tnsnames.ora в
<Код> C: \ Oracle \ продукт \ 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-имена не отображаются в качестве параметров.

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

Это было полезно?

Решение

Разработчик SQL будет искать в следующем месте файл 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
  • Чтобы узнать, какой из разработчиков SQL использует, введите в листе команду show tns

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

    <Ол>
  • Определите переменную среды с именем TNS_ADMIN , чтобы она указывала на папку, в которой находится файл tnsnames.ora.

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

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

  • Подтвердите, что ОС распознает эту переменную среды

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

    Из Linux: echo $ TNS_ADMIN

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

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

    Open 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\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 используется в системах с несколькими домами оракулов.

    В SQLDeveloper просмотрите Инструменты - > Настройки , как показано на рисунке ниже.

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

    В настройках Настройки разверните База данных - > выберите Дополнительно - > в разделе "Каталог Tnsnames" - & GT; Просмотрите каталог , в котором присутствует tnsnames.ora .
    Затем нажмите Хорошо .
    как показано на диаграмме ниже.

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

      

    Вы сделали!

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

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

    В Sql Developer перейдите в раздел Сервис-> Настройки-> Данные-> Расширенный-> Установить каталог Tnsname в каталог, содержащий tnsnames.ora

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top