Cuando se intenta conectar mediante ADO/OLEDB con una base de datos Oracle 9i utilizando los componentes de cliente de esta versión del gestor de datos, se obtiene continuamente un error que dice que las bibliotecas de red y comunicación de oracle no están instaladas. Se trata de un problema bastante desesperante porque no hay pistas de porqué se produce y todo parece estar bien instalado.
El mensaje de error que obtenemos dice:

"The Oracle(tm) client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3 (or greater) client software installation."

El problema se debe a que, tanto las bibliotecas de cliente de Oracle (las que vienen en el CD o el Instant Client que se puede descargar desde la Web de Oracle) como el propio MDAC introducen mal en el registro las entradas que indican al controlador OLEDB qué bibliotecas de Oracle debe utilizar. Lo que está en el registro se corresponde siempre con una versión antigua de Oracle (la 7.0 creo), y por lo tanto no hay forma de hacerlo funcionar.

Para solucionar el problema sólo hay que introducir en el registro las siguientes entradas:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient9.dll"
"OracleSqlLib"="orasql9.dll"
"OracleOciLib"="oci.dll"

Si queremos usar OLEDB para conectarnos a Oracle desde una página ASP, además de esto es necesario que la carpeta raíz del cliente de Oracle tenga permisos de acceso total para los usaurios IWAM_maquina e IUSR_maquina o no podrán usar las bibliotecas.

Por cierto, hay que reiniciar IIS para que los cambios del registro surtan efecto.

Se puede obtener información adicional de cómo resolver problemas de comunicaciones con Oracle en el artículo "255084 - HOWTO: Troubleshoot an ASP-to-Oracle Connectivity Problem" de la KB de MSDN. También es interesante consultar el listado de los artículos que tratan sobre Oracle y ADO en la KB de MSDN.

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor

Escrito por un humano, no por una IA