Ifølge Oracle søges disse steder efter tnsnames.ora
, hhv. sqlnet.ora
:
- aktuel sti (tilknyttet den kørende klientapplikation)
- Miljøvariabel
TNS_ADMIN
defineret for sessionen - Miljøvariabel
TNS_ADMIN
defineret 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_ADMIN
Miljø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.