Le fournisseur OraOLEDB.Oracle n’est pas enregistré sur la machine locale

Je viens de migrer de XP vers Win 7. Je suppose que cette erreur concerne la commutation de systèmes d’exploitation. J’ai écrit une application .net qui masse essentiellement une grande quantité de données, puis se connecte à une firebase database et insère / met à jour une table.

Lorsque je clique sur un bouton pour me connecter à la firebase database, je me suis rendu compte que le fournisseur d’oracle n’était pas enregistré sur ma machine locale.

Un aperçu clair, étape par étape de la façon dont je peux résoudre ce problème rapidement serait très apprécié.

Le message d’erreur exact est:

Le fournisseur ‘OraOLEDB.Oracle.1’ n’est pas enregistré sur la machine locale

J’ai eu le même problème après l’installation du client Oracle 64 bits sur Windows 7 64 bits. La solution qui a fonctionné pour moi:

  1. Ouvrir une invite de commande en mode administrateur
  2. cd \oracle\product\11.2.0\client_64\BIN
  3. c:\Windows\system32\regsvr32.exe OraOLEDB11.dll

Faites le test suivant:

Ouvrez une invite de commandes et tapez: tnsping nom_instance

où nom_instance est le nom de l’instance que vous souhaitez connecter (s’il s’agit d’une firebase database XE, utilisez “tnsping xe”

Si ça revient bien, suivez les étapes de la réponse de Der Wolf. Si ne retourne pas ok, suivez les étapes de la réponse d’Annjawn.

Cela a résolu pour moi dans les deux cas.

J’ai eu le même problème en utilisant IIS.

Assurez-vous que l’option “Activer les applications 32 bits” est définie sur true dans la configuration avancée du pool d’applications.

  1. Clic droit sur mon ordinateur
  2. Cliquez sur les propriétés
  3. Cliquez sur Paramètres système avancés
  4. Cliquez sur le bouton “Variables d’environnement”.
  5. Dans la section Variable du système, trouvez la variable “PATH”
  6. Editez la variable “PATH” et ajoutez-y le chemin d’installation d’Oracle (depuis votre ;C:\oracle\product\10.2.0\client_1\bin local) comme ;C:\oracle\product\10.2.0\client_1\bin

Si vous avez Windows 64 bits, essayez d’installer le pilote oracle 32 bits d’abord, puis le pilote 64 bits, c’est ce que je fais et ça marche

Cela n’a fonctionné que lorsque j’ai changé la cible de la plate-forme en x64 (en considérant que j’utilise Oracle 12c 64 bits)

Pour ce faire, j’ai fait:

  1. Cliquez avec le bouton droit sur le nom du projet (sur le panneau Explorateur de solutions, localisez, en général, à gauche)

  2. Cliqué sur ‘Build’ (dans la nouvelle fenêtre ouverte)

  3. Changement de la ‘cible de la plate-forme’ de ‘Any CPU’ à ‘x64’

Cela a résolu le problème.

Si vous obtenez cela dans un projet C #, vérifiez si vous utilisez le mode 64 bits ou 32 bits avec le code suivant:

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

Si vous constatez que vous utilisez le mode 64 bits, vous pouvez essayer de passer à 32 bits (ou vice versa). Vous pouvez suivre ce guide pour forcer votre application à fonctionner en 64 ou 32 bits (X64 et X86 respectivement). Vous devez vous assurer que Platform Target dans les propriétés de votre projet n’est pas défini sur Any CPU et qu’il est explicitement défini.

entrer la description de l'image ici

Le fait de basculer cette option de Any CPU vers X86 résolu mon erreur et j’ai pu me connecter au fournisseur Oracle.

Après avoir passé des heures à réparer cela; et pour certains qui l’ont installé de manière incorrecte, vous devez désinstaller la version actuelle et la réinstaller en tant qu’administrateur entrer la description de l'image ici

En s’appuyant sur le conseil de Der Wolfs, j’ai désinstallé le client Oracle et l’ai réinstallé, en cliquant avec le bouton droit sur le programme d’installation et en l’ exécutant en tant qu’administrateur . Ça a marché.

Mon équipe trébucherait de temps en temps sur ce problème dans des machines aléatoires dans lesquelles nous allions installer notre plate-forme (nous utilisons les pilotes Oracle 12c ver 12.2.0.4 mais nous avons également rencontré ce bogue avec d’autres versions)

Après quelques essais, nous avons réalisé ce qui n’allait pas:

Ces machines auraient des applications qui utiliseraient les pilotes d’oracle à l’échelle de la machine pour les verrouiller en mode silencieux et empêcher le programme d’installation du pilote oracle d’essayer de mettre à jour / réinstaller lesdits pilotes Oracle. L’application la plus sournoise serait les sites Web exécutés dans IIS et autres, car ces applications démarrent essentiellement automatiquement au redémarrage. Pour contrer cela, nous faisons ce qui suit:

  1. Désactiver le démarrage automatique d’IIS au redémarrage. Faites de même pour toutes les autres applications / services qui se démarrent automatiquement au redémarrage.
  2. Désinstallez tout pilote Oracle précédent et vérifiez qu’il ne rest aucune trace dans le registre ou les dossiers.
  3. Redémarrez la machine
  4. (Re) Installez les pilotes Oracle et réactivez IIS et les autres applications de démarrage automatique.
  5. Redémarrez la machine <- Ceci est vital. Les pilotes OLE DB d'Oracle ne fonctionneront pas, sauf si vous redémarrez l'ordinateur.

Si cela ne fonctionne pas, répétez le rinçage jusqu’à ce que les pilotes OLE DB fonctionnent. J’espère que cela aidera quelqu’un à lutter pour comprendre ce qui se passe.