De acordo com a Oracle, esses locais são pesquisados por
tnsnames.ora , resp. sqlnet.ora :- caminho atual (associado ao aplicativo cliente em execução)
- Variável de ambiente
TNS_ADMINdefinido para a sessão - Variável de ambiente
TNS_ADMINdefinido para o sistema - Chave do Registro do Windows
HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN(para 64 bits) ouHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN(para 32 bits) %ORACLE_HOME%\network\admin
No entanto, não tenho certeza se cada aplicativo/driver/versão segue esta lista. Esta lista foi fornecida pela Oracle relacionada à versão 9i. Acho que você vai conseguir consultar essas pastas pelo VBScript.
Se
ORACLE_HOME não é definido pela variável de ambiente, você deve consultar o registro HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME (para 64 bits) ou HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME (para 32 bits) Para
ORACLE_HOME_NAME você tem que navegar para o seu Oracle bin pasta (a ser encontrada através de %PATH% variável de ambiente) e abra o arquivo oracle.key . Este é um arquivo de texto simples contendo apenas o ORACLE_HOME_NAME valor, por exemplo OraClient11g_home1 . No entanto, normalmente há apenas um Oracle Home abaixo de
HKLM\SOFTWARE\ORACLE , procurando e lendo o arquivo oracle.key pode ser um exagero. Atualizar
Quando executo um teste em minha máquina (com Oracle Client 11.2) recebo a seguinte ordem:
- Variável de ambiente
TNS_ADMIN HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN, resp.HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN-> Somente seTNS_ADMINA variável de ambiente não está definida.%ORACLE_HOME%\network\admin- Diretório atual (que pode ser diferente do diretório em que seu aplicativo está localizado)
- Pasta onde seu aplicativo está localizado
Para uma análise profunda, você deve procurar por
tnsnames.ora , sqlnet.ora e ldap.ora . O nome do banco de dados Oracle pode ser resolvido através de cada um deles, ou seja, uma conexão pode ser estabelecida mesmo quando tnsnames.ora e sqlnet.ora não existe.