Volgens Oracle worden deze locaties doorzocht op tnsnames.ora
, resp. sqlnet.ora
:
- huidig pad (gekoppeld aan de actieve clienttoepassing)
- Omgevingsvariabele
TNS_ADMIN
gedefinieerd voor de sessie - Omgevingsvariabele
TNS_ADMIN
gedefinieerd voor het systeem - Windows-registersleutel
HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(voor 64 bit) ofHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(voor 32 bit) %ORACLE_HOME%\network\admin
Ik weet echter niet zeker of elke applicatie/driver/versie deze lijst volgt. Deze lijst is geleverd door Oracle met betrekking tot versie 9i. Ik denk dat het u zal lukken om deze mappen door VBScript te doorzoeken.
Als ORACLE_HOME
niet is ingesteld door de omgevingsvariabele, moet u het register HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME
opvragen (voor 64 bit) of HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME
(voor 32 bit)
Voor ORACLE_HOME_NAME
je moet naar je Oracle bin
. gaan map (te vinden via %PATH%
omgevingsvariabele) en open bestand oracle.key
. Dit is een eenvoudig tekstbestand met alleen de ORACLE_HOME_NAME
waarde, bijv. OraClient11g_home1 .
Meestal is er echter maar één Oracle Home onder HKLM\SOFTWARE\ORACLE
, dus zoeken en lezen van bestand oracle.key
is misschien een overkill.
Bijwerken
Als ik een test op mijn computer uitvoer (met Oracle Client 11.2) krijg ik de volgende volgorde:
- Omgevingsvariabele
TNS_ADMIN
HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
, resp.HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-> Alleen alsTNS_ADMIN
Omgevingsvariabele is niet ingesteld.%ORACLE_HOME%\network\admin
- Huidige map (die kan verschillen van de map waarin uw toepassing zich bevindt)
- Map waarin uw toepassing zich bevindt
Voor een diepgaande analyse moet je zoeken naar tnsnames.ora
, sqlnet.ora
en ldap.ora
. De Oracle-databasenaam kan via elk van hen worden opgelost, d.w.z. er kan een verbinding tot stand worden gebracht, zelfs wanneer tnsnames.ora
en sqlnet.ora
bestaan niet.