Используйте tnsnames.ora в Oracle SQL Developer


138

Я оцениваю Oracle SQL Developer .

Мое tnsnames.oraзаполнено, и подключение tnspingк определенному в tnsnames.oraработает нормально. Тем не менее, SQL Developer не отображает никаких соединений.

Oracle SQL Developer Soars упоминает, что если

на вашем компьютере уже установлено клиентское программное обеспечение Oracle и файл tnsnames.ora. Oracle SQL Developer автоматически заполнит навигатор Connections из имен сетевых служб, определенных в tnsnames.ora.

Я также попытался установить TNS_ADMINпеременную среды, но после перезапуска SQL Developer все еще не отображаются соединения.

Любые идеи?
Кто-нибудь успешно работает с SQL Developer и tnsnames.ora?


Я скачал и установил Oracle SQL Developer для подключения к уже существующей базе данных Oracle 11g. Но, похоже, мне нужно будет также загрузить и установить клиентское программное обеспечение Oracle, какое мне использовать, если я нахожусь на Windows 10?
VoodooChild

Ответы:


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

    Настройки доступа SQLDeveloper

  • В настройках параметров, expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directoryгде присутствует tnsnames.ora .
  • Затем нажмите Ok , как показано на диаграмме ниже.
    tnsnames.ora доступен наDrive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    SQLDeveloper обновить каталог tnsnames

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


4
всем, просто небольшое обновление этой старой (но весьма полезной) статьи: не пытайтесь использовать символическую ссылку в Windows. Разработчик SQL, похоже, не знает, как его использовать. Заставил меня потерять время. Надеюсь, это спасет тебя.
Hellday5432

@ Hellday5432 - Да, это правильно. SQL Dev работает на Java, который не понимает ярлыки; например, при открытии файла мы не можем использовать ярлык для перехода в каталог.
Кент Павар

5
Ярлык Windows! = Символическая ссылка. howtogeek.com/howto/16226/…
Мэтт Лахман

Я скачал и установил Oracle SQL Developer для подключения к уже существующей базе данных Oracle 11g. Но, похоже, мне нужно будет также загрузить и установить клиентское программное обеспечение Oracle, какое мне использовать, если я нахожусь на Windows 10?
VoodooChild

Я не вижу опцию каталога Tnsnanes в моем SQL Developer версии 1.5.5.
Амит Чаурасия

24

Этот превосходный ответ на похожий вопрос (который я, к сожалению, не мог найти раньше) помог мне решить проблему.

Копирование контента из ссылочного ответа:

Разработчик SQL будет искать в следующем месте в этом порядке файл tnsnames.ora

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

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

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

В Windows это можно сделать, перейдя в Панель управления> Система> Дополнительные параметры системы> Переменные среды ...
В Linux определите переменную TNS_ADMIN в файле .profile в вашем домашнем каталоге.

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

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

Из Linux: эхо $ TNS_ADMIN

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


3
Я знаю, что это было давно, но вы можете вытащить соответствующую часть ответа здесь? На всякий случай этот ответ (или даже вопрос) когда-либо будет удален.
Деннис Мэн,

1
в основном это округление до установки системной переменной TNS_ADMIN (потому что SQL Developer ищет там ~ в первую очередь) и после перезапуска SQL Developer, выбора New Connection и в раскрывающемся списке Тип соединения вместо Basic, выбор TNS-so-tnsnames выглядит хорошо, но Вы не должны ожидать, что соединения будут заполняться автоматически (это было со мной)
hello_earth

поиск взял у меня ее, поэтому уже обновили ответ, так как уже есть ссылка на автора @DennisMeng
TheGameiswar

7

У меня была та же проблема, она tnsnames.oraработала нормально для всех других инструментов, но SQL Developer не использовал ее. Я перепробовал все предложения в Интернете, которые я мог найти, включая решения по ссылке, приведенной здесь.
Ничего не получалось.

Оказывается, база данных кэшировала резервные копии, tnsnames.oraнапример tnsnames.ora.bk2, tnsnames09042811AM4501.bakи tnsnames.ora.bkт. Д. Эти файлы не были доступны для чтения обычному пользователю.

Я подозреваю, что sqldeveloper соответствует шаблону имени, и он пытался прочитать одну из этих резервных копий и не смог. Так что он просто изящно терпит неудачу и ничего не показывает в выпадающем списке.

Решение состоит в том, чтобы сделать все файлы читаемыми, удалить или переместить резервные копии из каталога Admin.


Это, вероятно, именно то, что вы видите. SQL Plus и SQL Developer оба видят / разбирают / читают tnsnames - так что, если кто-то плохой, это может привести к каскаду и вызвать вашу проблему.
thatjeffsmith


0

На более новых версиях macOS также необходимо установить java.library.path. Самый простой / безопасный способ сделать это [1] - создать ~/.sqldeveloper/<version>/sqldeveloper.confфайл и заполнить его следующим образом:

AddVMOption -Djava.library.path=<instant client directory>

[1] https://community.oracle.com/message/14132189#14132189

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.