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

Error de apertura de conexión de Oracle al conectarse desde código .NET

Descargué ODAC121021Xcopy_32bit del sitio de Oracle y extrajo el zip y lo instaló usando el archivo install.bat.

Me enfrenté al mismo problema. Gracias Omaraguirre. Como dijo Omaraguirre, hizo referencia a Oracle.ManagedDataAccess.dll y el problema se solucionó. Pude abrir la conexión sin ningún problema.

Pero quería averiguar por qué Oracle.DatAccess.dll arroja una excepción de referencia nula al intentar abrir la conexión. Descubrí que se requieren dlls compatibles como (oci.dll, ociwin32.dll, etc.) para abrir la conexión sin errores. Así que copié todos los archivos dll de instantclient_12_1 (esta carpeta se encuentra dentro de la carpeta ODAC121021Xcopy_32bit extraída) carpeta en el directorio bin instalado de Oracle (C:\oracle\bin , en mi máquina). Ahora, Oracle.DataAccess.dll no arroja un error al abrir la conexión.

Una cosa más es que Oracle.ManagedDataAccess.dll cargará todos los archivos dll compatibles internamente. Pero Oracle.DataAccess.dll requiere que los dlls de soporte estén presentes en el directorio de la aplicación en ejecución (en el caso de las aplicaciones de consola/WinForm) o en el directorio bin instalado de Oracle (en el caso de la aplicación web). Diferencia entre Oracle.DataAccess.dll y Oracle. Los dlls de ManagedDataAccess.dll se pueden encontrar en https://docs.oracle .com/database/121/ODPNT/intro003.htm#ODPNT131