Enligt Oracle söks dessa platser efter tnsnames.ora
, resp. sqlnet.ora
:
- aktuell sökväg (associerad med den pågående klientapplikationen)
- Miljövariabel
TNS_ADMIN
definieras för sessionen - Miljövariabel
TNS_ADMIN
definierat för systemet - Windows-registernyckel
HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(för 64 bitar) ellerHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(för 32 bitar) %ORACLE_HOME%\network\admin
Jag är dock inte säker på om varje applikation/drivrutin/version följer denna lista. Den här listan tillhandahölls av Oracle relaterad till version 9i. Jag tror att du kommer att klara av att söka efter dessa mappar med VBScript.
Om ORACLE_HOME
inte ställs in av miljövariabeln måste du fråga registret HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME
(för 64 bitar) eller HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME
(för 32 bitar)
För ORACLE_HOME_NAME
du måste navigera till din Oracle bin
mapp (finns via %PATH%
miljövariabel) och öppna filen oracle.key
. Detta är en enkel textfil som endast innehåller ORACLE_HOME_NAME
värde, t.ex. OraClient11g_home1 .
Men vanligtvis finns det bara ett Oracle Home under HKLM\SOFTWARE\ORACLE
, så söker och läser filen oracle.key
kan vara en överdrift.
Uppdatera
När jag kör ett test på min dator (med Oracle Client 11.2) får jag följande order:
- Miljövariabel
TNS_ADMIN
HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
, resp.HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-> Endast omTNS_ADMIN
Miljövariabeln är inte inställd.%ORACLE_HOME%\network\admin
- Aktuell katalog (som kan skilja sig från katalogen där ditt program finns)
- Mapp där din applikation finns
För en djupgående analys måste du söka efter tnsnames.ora
, sqlnet.ora
och ldap.ora
. Oracle-databasnamnet kan lösas genom var och en av dem, d.v.s. en anslutning kan upprättas även när tnsnames.ora
och sqlnet.ora
finns inte.