Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Por que o Oracle.ManagedDataAccess não funciona quando o Oracle.DataAccess funciona?


A ordem de precedência para resolver nomes TNS no ODP.NET, Driver Gerenciado é esta (veja aqui):
  1. alias da fonte de dados na seção 'dataSources' na seção do arquivo de configuração .NET.
  2. alias da fonte de dados no arquivo tnsnames.ora no local especificado por 'TNS_ADMIN' no arquivo de configuração .NET.
  3. alias da fonte de dados no arquivo tnsnames.ora presente no mesmo diretório que o .exe.
  4. alias da fonte de dados no arquivo tnsnames.ora presente em %TNS_ADMIN% (onde %TNS_ADMIN% é uma configuração de variável de ambiente).
  5. alias da fonte de dados no arquivo tnsnames.ora presente em %ORACLE_HOME%\network\admin (onde %ORACLE_HOME% é uma configuração de variável de ambiente).

Acredito que o motivo pelo qual seu exemplo funciona com Oracle.DataAccess, mas não com Oracle.ManagedDataAccess é que a configuração baseada no registro do Windows não é suportada para este último (consulte a documentação) - a instalação do ODP.NET define uma chave de registro ORACLE_HOME (HLKM\SOFTWARE\Oracle \Key_NAME\ORACLE_HOME) que é reconhecido apenas pela parte não gerenciada.