sql >> Base de Datos >  >> RDS >> Oracle

identificar la ubicación de los tnsnames relevantes y hacer eco en la consola

Según Oracle, estas ubicaciones se buscan tnsnames.ora , resp. sqlnet.ora :

  1. ruta actual (asociada con la aplicación cliente en ejecución)
  2. Variable de entorno TNS_ADMIN definido para la sesión
  3. Variable de entorno TNS_ADMIN definido para el sistema
  4. Clave de registro de Windows HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN (para 64 bits) o HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN (para 32 bits)
  5. %ORACLE_HOME%\network\admin

Sin embargo, no estoy seguro de si cada aplicación/controlador/versión sigue esta lista. Oracle proporcionó esta lista en relación con la versión 9i. Creo que VBScript la administrará para consultar estas carpetas.

Si ORACLE_HOME no está configurado por la variable de entorno, debe consultar el Registro HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME (para 64 bits) o HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_HOME (para 32 bits)

Para ORACLE_HOME_NAME tienes que navegar a tu Oracle bin carpeta (que se encuentra a través de %PATH% Variable de entorno) y abra el archivo oracle.key . Este es un archivo de texto simple que contiene solo el ORACLE_HOME_NAME valor, p. OraClient11g_home1 .

Sin embargo, normalmente solo hay un Oracle Home debajo de HKLM\SOFTWARE\ORACLE , por lo que busca y lee el archivo oracle.key podría ser una exageración.

Actualizar

Cuando ejecuto una prueba en mi máquina (con Oracle Client 11.2) obtengo el siguiente orden:

  1. Variable de entorno TNS_ADMIN
  2. HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN , resp. HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN -> Solo si TNS_ADMIN La variable de entorno no está configurada.
  3. %ORACLE_HOME%\network\admin
  4. Directorio actual (que puede ser diferente al directorio donde se encuentra su aplicación)
  5. Carpeta donde se encuentra su aplicación

Para un análisis profundo, debe buscar tnsnames.ora , sqlnet.ora y ldap.ora . El nombre de la base de datos de Oracle se puede resolver a través de cada uno de ellos, es decir, se puede establecer una conexión incluso cuando tnsnames.ora y sqlnet.ora no existen.