Red de conocimiento informático - Material del sitio web - ¿Cómo me conecto a una base de datos Oracle en una computadora con el componente Cliente Oracle de 32 bits instalado?

¿Cómo me conecto a una base de datos Oracle en una computadora con el componente Cliente Oracle de 32 bits instalado?

C# usa System.Data.OracleClient.Data.OracleClient para conectarse a la base de datos Oracle. Utilice System.Data.OracleClient para conectarse a la base de datos de Oracle. Los programas que solían ejecutarse normalmente en WinXP no pueden conectarse a la base de datos después de ser trasplantados a Windows 2008 x64. El mensaje de error es el siguiente:

Al iniciar la herramienta Database2sharp, aparece el mensaje:

La conexión de datos no tuvo éxito. Verifique si la base de datos se ha iniciado. Un intento de cargar el cliente de Oracle genera una excepción BadImageFormatException, que ocurre si se ejecuta en modo de 64 bits y el componente del cliente de Oracle de 32 bits está instalado.

El motivo de este error es que el OracleInstantClient instalado en la máquina WinXP original es de 32 bits, por lo que el OracleClient utilizado para compilar el programa también es de 32 bits, lo que provoca problemas de compatibilidad. Por supuesto, el problema también se puede solucionar si reinstalas el cliente Oracle de 64 bits en un sistema operativo de 64 bits y luego vuelves a compilar el programa. Aquí presentamos un método simple para portar programas.

De hecho, System.Data.OracleClient apunta a oci.dll en la variable de entorno PATH, por lo que solo necesitamos dejar que el programa encuentre el oci.dll de 64 bits. El método es el siguiente:

1. Descargue instantclient-basic-win-x86-64-11.1.0.7.0.zip y extráigalo a un archivo, como C:\instantclient-basic-win -x86-64 -11.1.

2. Agregue la siguiente ruta a la variable de entorno del sistema PATH.path.

Después de ejecutar el programa, el programa buscará oci.dll de acuerdo con la ruta PATH. Si encuentra un oci.dll de 32 bits, lo omitirá automáticamente y luego buscará uno de 64 bits. bit oci.dll para conectarse a la base de datos.