Според Oracle тези местоположения се търсят за tnsnames.ora
, респ. sqlnet.ora
:
- текущ път (свързан с работещото клиентско приложение)
- Променлива на средата
TNS_ADMIN
определени за сесията - Променлива на средата
TNS_ADMIN
определени за системата - Ключ на системния регистър на Windows
HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(за 64 бита) илиHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(за 32 бита) %ORACLE_HOME%\network\admin
Не съм сигурен обаче дали всяко приложение/драйвер/версия следва този списък. Този списък е предоставен от Oracle, свързан с версия 9i. Мисля, че ще успеете да направите заявка за тези папки чрез VBScript.
Ако ORACLE_HOME
не е зададено от променливата на средата, трябва да направите заявка в регистъра HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME
(за 64 бита) или HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME
(за 32 бита)
За ORACLE_HOME_NAME
трябва да отидете до вашия Oracle bin
папка (да се намери чрез %PATH%
Променлива на средата) и отворете файла oracle.key
. Това е прост текстов файл, съдържащ само ORACLE_HOME_NAME
стойност, напр. OraClient11g_home1 .
Обаче обикновено има само един Oracle Home под HKLM\SOFTWARE\ORACLE
, така че търсенето и четенето на файла oracle.key
може да е пресилено.
Актуализация
Когато стартирам тест на моята машина (с Oracle Client 11.2), получавам следната поръчка:
- Променлива на средата
TNS_ADMIN
HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
, респ.HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-> Само акоTNS_ADMIN
Променливата на средата не е зададена.%ORACLE_HOME%\network\admin
- Текуща директория (която може да е различна от директорията, в която се намира вашето приложение)
- Папка, където се намира вашето приложение
За задълбочен анализ трябва да потърсите tnsnames.ora
, sqlnet.ora
и ldap.ora
. Името на базата данни на Oracle може да бъде разрешено чрез всяка от тях, т.е. връзка може да бъде установена дори когато tnsnames.ora
и sqlnet.ora
не съществуват.