Имена Oracle TNS не отображаются при добавлении нового подключения к SQL Developer
Я пытаюсь подключиться к базе данных oracle с SQL Developer.
Я установил драйверы .NET oracle и разместил tnsnames.ora
file atC: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 будет искать в следующем месте в этом порядке для tnsnames.файл Ora
- $HOME/.tnsnames.Ора
- $TNS_ADMIN / tnsnames.Ора
- tns_admin ключ поиска в реестре
- / etc / tnsnames.ora (non-windows )
- $ORACLE_HOME / network/admin / tnsnames.Ора
- LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME_KEY
- LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME
посмотреть какой разработчик SQL использует, выполните команду
show tns
в таблицеЕсли ваши tnsnames.файл ora не распознается, используйте следующую процедуру:
определить переменную среды с именем TNS_ADMIN указать папку, содержащую файл tnsnames.Ора файл.
в Windows, это делается путем перехода к Панель Управления>система>передовая система настройки>Переменные Среды...
в Linux, определите TNS_ADMIN переменной .файл профиля в вашем домашнем каталоге.
подтвердите, что ОС распознает эту переменную среды
из командной строки Windows : Эхо %TNS_ADMIN%
из linux: echo $TNS_ADMIN
перезапустить SQL Developer
- теперь в SQL Developer щелкните правой кнопкой мыши на подключения и выберите Новое Подключение.... Выберите TNS тип соединения в выпадающем списке. Ваши записи из файла tnsnames.теперь Ора должна отображаться здесь.
откройте 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
, как показано на рисунке ниже.
В предпочтения опцииexpand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory
здесь tnsnames.Ора присутствует.
затем нажмите на кнопку ОК.
как показано на диаграмме ниже.вы сделали!
теперь вы можете подключиться через TNSnames параметры.
шаги, упомянутые Джейсоном, очень хороши и должны работать. Однако есть небольшой поворот с разработчиком SQL. Он кэширует спецификации подключения (хост, имя службы, порт) при первом чтении tnsnames.Ора файл. Затем он не делает недействительными спецификации, когда исходная запись удаляется из tnsname.Ора файл. Кэш сохраняется даже после завершения и перезапуска SQL Developer. Это не такой уж нелогичный способ справиться с ситуацией. Даже если tnsnames.файл ora временно недоступен, разработчик SQL все еще может установить соединение, если исходные спецификации по-прежнему верны. Проблема приходит с их следующим небольшим поворотом. Разработчик SQL обрабатывает имена служб в именах tnsnames.файл ora в качестве чувствительных к регистру значений при разрешении соединения. Поэтому, если у вас было имя записи ABCD.мир в файле, и вы заменили его новой записью с именем abcd.мир, разработчик SQL не будет обновлять свои спецификации подключения для ABCD.мир - это будет относиться к АВСD.мир как совершенно другая связь. Почему я не удивлен, что продукт Oracle будет рассматривать как чувствительный к регистру содержимое формата файла, разработанного oracle, который явно нечувствителен к регистру?
в SQL Developer, navidate to Tools->preferences->Datababae->advanced - > установите каталог Tnsname в каталог, содержащий tnsnames.Ора
ни одно из вышеперечисленных изменений не имело никакого значения в моем случае. Я мог бы запустить 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.исполняемый. Это изменение исправило проблему в моем случае.