Oracle имена TNS, не показывающие при добавлении нового соединения с Разработчиком SQL

Простым способом было бы использовать фреймворк PHP, такой как CodeIgniter или Laravel , которые имеют встроенные функции, такие как фильтрация и активная запись, так что вам не нужно беспокоиться об этих нюансах.

90
задан Peter Lang 15 December 2011 в 08:12
поделиться

3 ответа

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

  1. $TNS_ADMIN/tnsnames.ora
  2. ключ поиска TNS_ADMIN в реестре
  3. /etc/tnsnames.ora (не-Windows)
  4. $ORACLE_HOME/network/admin/tnsnames.ora
  5. LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME_KEY
  6. LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME

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

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

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

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

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

  2. Подтверждают, что OS распознает эту переменную окружения

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

    Из Linux: $TNS_ADMIN эха

  3. Разработчик SQL Перезапуска

  4. Теперь в щелчке правой кнопкой SQL Developer по Соединения и выбор Новое Соединение... . Выберите TNS как тип соединения в выпадающем поле. Ваши записи от tnsnames.ora должны теперь отобразиться здесь.
170
ответ дан Kris Rice 24 November 2019 в 06:58
поделиться

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

13
ответ дан Peter Lang 24 November 2019 в 06:58
поделиться

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

2
ответ дан 24 November 2019 в 06:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: