Oracle
 sql >> Database >  >> RDS >> Oracle

Perché Oracle.ManagedDataAccess non dovrebbe funzionare quando Oracle.DataAccess funziona?

L'ordine di precedenza per la risoluzione dei nomi TNS in ODP.NET, Managed Driver è questo (vedi qui):

  1. Alias ​​dell'origine dati nella sezione 'dataSources' nella sezione del file di configurazione .NET.
  2. alias dell'origine dati nel file tnsnames.ora nella posizione specificata da 'TNS_ADMIN' nel file di configurazione .NET.
  3. alias dell'origine dati nel file tnsnames.ora presente nella stessa directory del file .exe.
  4. Alias ​​dell'origine dati nel file tnsnames.ora presente in %TNS_ADMIN% (dove %TNS_ADMIN% è un'impostazione di una variabile di ambiente).
  5. alias dell'origine dati nel file tnsnames.ora presente in %ORACLE_HOME%\network\admin (dove %ORACLE_HOME% è un'impostazione della variabile di ambiente).

Credo che il motivo per cui il tuo campione funziona con Oracle.DataAccess ma non con Oracle.ManagedDataAccess è che la configurazione basata sul registro di Windows non è supportata per quest'ultimo (vedi documentazione) - l'installazione di ODP.NET imposta una chiave di registro ORACLE_HOME (HLKM\SOFTWARE\Oracle \Key_NAME\ORACLE_HOME) che viene riconosciuto solo dalla parte non gestita.