Ifølge Oracle søges disse steder efter tnsnames.ora , hhv. sqlnet.ora :
- aktuel sti (tilknyttet den kørende klientapplikation)
- Miljøvariabel
TNS_ADMINdefineret for sessionen - Miljøvariabel
TNS_ADMINdefineret for systemet - Windows registreringsdatabasenøgle
HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN(for 64 bit) ellerHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN(til 32 bit) %ORACLE_HOME%\network\admin
Jeg er dog ikke sikker på, om hver applikation/driver/version følger denne liste. Denne liste blev leveret af Oracle relateret til version 9i. Jeg tror, du vil klare den til at forespørge disse mapper med VBScript.
Hvis ORACLE_HOME ikke er indstillet af miljøvariablen, skal du forespørge i registreringsdatabasen HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME (for 64 bit) eller HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME (til 32 bit)
Til ORACLE_HOME_NAME du skal navigere til din Oracle bin mappe (findes via %PATH% miljøvariabel) og åbn filen oracle.key . Dette er en simpel tekstfil, der kun indeholder ORACLE_HOME_NAME værdi, f.eks. OraClient11g_home1 .
Der er dog typisk kun ét Oracle Home under HKLM\SOFTWARE\ORACLE , så søger og læser filen oracle.key kan være en overkill.
Opdater
Når jeg kører en test på min maskine (med Oracle Client 11.2) får jeg følgende ordre:
- Miljøvariabel
TNS_ADMIN HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN, hhv.HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN-> Kun hvisTNS_ADMINMiljøvariabelen er ikke indstillet.%ORACLE_HOME%\network\admin- Nuværende bibliotek (som kan være forskellig fra det bibliotek, hvor din applikation er placeret)
- Mappe, hvor din applikation er placeret
For en dyb analyse skal du søge efter tnsnames.ora , sqlnet.ora og ldap.ora . Oracle-databasenavnet kan løses gennem hver af dem, dvs. en forbindelse kan oprettes, selv når tnsnames.ora og sqlnet.ora eksisterer ikke.