Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Warum sollte Oracle.ManagedDataAccess nicht funktionieren, wenn Oracle.DataAccess funktioniert?

Die Rangfolge für die Auflösung von TNS-Namen in ODP.NET, Managed Driver ist diese (siehe hier):

  1. Datenquellen-Alias ​​im Abschnitt „dataSources“ unter dem Abschnitt in der .NET-Konfigurationsdatei.
  2. Alias ​​der Datenquelle in der Datei tnsnames.ora an dem durch „TNS_ADMIN“ in der .NET-Konfigurationsdatei angegebenen Speicherort.
  3. Alias ​​der Datenquelle in der Datei tnsnames.ora, die sich im selben Verzeichnis wie die .exe-Datei befindet.
  4. Alias ​​der Datenquelle in der Datei tnsnames.ora vorhanden unter %TNS_ADMIN% (wobei %TNS_ADMIN% eine Umgebungsvariableneinstellung ist).
  5. Alias ​​der Datenquelle in der Datei tnsnames.ora, vorhanden unter %ORACLE_HOME%\network\admin (wobei %ORACLE_HOME% eine Umgebungsvariableneinstellung ist).

Ich glaube, der Grund, warum Ihr Beispiel mit Oracle.DataAccess, aber nicht mit Oracle.ManagedDataAccess funktioniert, ist, dass die auf der Windows-Registrierung basierende Konfiguration für Letzteres nicht unterstützt wird (siehe Dokumentation) – die ODP.NET-Installation legt einen ORACLE_HOME-Registrierungsschlüssel fest (HLKM\SOFTWARE\Oracle \Key_NAME\ORACLE_HOME), die nur vom nicht verwalteten Teil erkannt wird.