El proveedor OraOLEDB.Oracle no está registrado en la máquina local

Acabo de migrar de XP a Win 7. Supongo que este error tiene que ver con el cambio de los sistemas operativos. Escribí una aplicación .net que básicamente masajes una gran cantidad de datos y luego se conecta a una base de datos e inserta / actualiza una tabla.

Cuando presiono un botón para conectarme a la base de datos me encuentro con el error de que el proveedor de oracle no esté registrado en mi máquina local.

Un claro, paso a paso, esbozo de cómo puedo solucionar esto rápidamente sería muy apreciado.

El mensaje de error exacto es:

El proveedor ‘OraOLEDB.Oracle.1’ no está registrado en la máquina local

Tuve el mismo problema después de instalar el cliente Oracle de 64 bits en Windows 7 de 64 bits. La solución que funcionó para mí:

  1. Abra un símbolo del sistema en modo administrador
  2. cd \oracle\product\11.2.0\client_64\BIN
  3. c:\Windows\system32\regsvr32.exe OraOLEDB11.dll

Haz la siguiente prueba:

Abra un símbolo del sistema y escriba: tnsping instance_name

donde nombre_instancia es el nombre de la instancia que desea conectar (si es una base de datos XE, use “tnsping xe”

Si vuelve correcto, sigue los pasos de la respuesta de Der Wolf. Si no regresa bien, sigue los pasos de la respuesta de Annjawn.

Lo resolvió para mí en ambos casos.

Tuve el mismo problema al usar IIS.

Asegúrese de que la opción ‘Habilitar aplicaciones de 32 bits’ esté establecida en verdadero en Configuración avanzada del grupo de aplicaciones.

  1. Haga clic derecho en mi computadora
  2. Haga clic en propiedades
  3. Haga clic en Configuración avanzada del sistema
  4. Haga clic en el botón “Variables del entorno”.
  5. En el sistema Variable section encuentra la variable “PATH”
  6. Edite la variable “PATH” y agregue la ruta de instalación de Oracle a la misma (desde su máquina local) como ;C:\oracle\product\10.2.0\client_1\bin

Si tiene Windows de 64 bits, intente instalar primero el controlador oracle de 32 bits y luego el controlador de 64 bits, eso es lo que hago y está funcionando

Solo funcionó para mí después de haber cambiado el ‘Objetivo de la plataforma’ a ‘x64’ (teniendo en cuenta que estoy usando Oracle 12c de 64 bits)

Para hacer eso, lo hice:

  1. Haga clic derecho en el nombre del proyecto (en el panel del Explorador de soluciones ubique, en general, a la izquierda)

  2. Haz clic en ‘Crear’ (en la nueva ventana abierta)

  3. Cambió el ‘Objetivo de la plataforma’ de ‘Cualquier CPU’ a ‘x64’

Eso resolvió el problema.

Si está obteniendo esto en un proyecto de C #, verifique si se está ejecutando en modo de 64 bits o 32 bits con el siguiente código:

  if (IntPtr.Size == 4) { Console.WriteLine("This is 32-Bit!"); } else if (IntPtr.Size == 8) { Console.WriteLine("This is 64 Bit!"); } 

Si encuentra que se está ejecutando en modo de 64 bits, puede intentar cambiar a 32 bits (o viceversa). Puede seguir esta guía para forzar que su aplicación se ejecute como 64 o 32 bit (X64 y X86 respectivamente). Debe asegurarse de que el Platform Target en las propiedades de su proyecto no esté configurado en Any CPU y que esté configurado explícitamente.

enter image description here

Cambiar esa opción de Any CPU a X86 resolvió mi error y pude conectarme con el proveedor de Oracle.

Después de pasar horas para arreglar eso; y para algunos que lo instalaron incorrectamente, necesita desinstalar la versión actual y reinstalarla de nuevo como Administrador enter image description here

Basándome en la sugerencia de Der Wolfs, desinstalé el cliente de Oracle y lo instalé de nuevo, haciendo clic derecho en el progtwig de instalación y ejecutándolo como Administrador . Funcionó.

Mi equipo tropezaba con este problema de vez en cuando en máquinas aleatorias en las que intentaríamos instalar nuestra plataforma (usamos los controladores oracle 12c ver 12.2.0.4 pero también encontramos este error con otras versiones)

Después de un poco de experimentación nos dimos cuenta de lo que estaba mal:

Dichas máquinas tendrían aplicaciones que estaban usando los controladores de oracle de toda la máquina bloqueándolas silenciosamente e impidiendo que el instalador de controladores Oracle haga su magia cuando intente actualizar / reinstalar dichos controladores oracle. La “aplicación” más furtiva sería sitios web que se ejecutan en IIS y similares, porque estas aplicaciones esencialmente se reinician automáticamente al reiniciar. Para contrarrestar esto, hacemos lo siguiente:

  1. Inhabilita IIS para que se inicie automágicamente al reiniciar. Haz lo mismo para cualquier otra aplicación / servicio que se autoenvíe al reiniciar.
  2. Desinstale cualquier controlador anterior de Oracle y vuelva a verificar que no haya rastros en el registro o las carpetas.
  3. Reinicia la máquina
  4. (Re) Instale los controladores de Oracle y vuelva a habilitar IIS y otras aplicaciones de inicio automático.
  5. Reinicia la máquina <- Esto es vital. Los controladores OLE DB de Oracle no funcionarán a menos que reinicie la máquina.

Si esto no funciona, enjuague hasta que los controladores OLE DB funcionen. Espero que esto ayude a alguien que está luchando por descubrir qué está pasando.