web-dev-qa-db-fra.com

Le fournisseur OraOLEDB.Oracle n'est pas enregistré sur l'ordinateur local

Je viens de migrer de XP vers Win 7. Je suppose que cette erreur est liée au changement de système d'exploitation. J'ai écrit une application .net qui masse en fait une grande quantité de données, puis se connecte à un base de données et insère/met à jour une table.

Lorsque je clique sur un bouton pour me connecter à la base de données, l'erreur suivante survient: le fournisseur Oracle n'est pas enregistré sur ma machine locale.

Un aperçu clair, étape par étape, de la manière dont je pourrais 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

31
Jared

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
45
Der Wolf

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 Configuration avancée du pool d'applications.

6
Vagner Gon

Faites le test suivant:

Ouvrez une invite de commande et tapez: tnsping nom_instance

où nom_instance est le nom de l'instance à laquelle vous souhaitez vous connecter (s'il s'agit d'une base de données XE, utilisez "tnsping xe"

Si cela vous convient, suivez les étapes de la réponse de Der Wolf. Si cela ne revient pas, suivez les étapes de la réponse d'Annjawn.

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

5
julison
  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 système, recherchez la variable "PATH".
  6. Editez la variable "PATH" et ajoutez-y le chemin d'installation Oracle (à partir de votre machine locale) comme ;C:\Oracle\product\10.2.0\client_1\bin
4
Annjawn

Après avoir passé des heures à résoudre ce problème; et pour certains qui l’ont installé incorrectement, vous devez désinstaller la version actuelle et la réinstaller à nouveau en tant qu’administrateur enter image description here

2
Bashar Abu Shamaa

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 travaille

Cela ne fonctionnait que pour moi après avoir changé la "cible de la plateforme" en "x64" (vu que j'utilise Oracle 12c 64 bits)

Pour ce faire, j'ai fait:

  1. Faites un clic droit sur le nom du projet (sur le panneau de l'Explorateur de solutions, localisez, en général, à gauche)

  2. Cliqué sur 'Construire' (dans la nouvelle fenêtre ouverte)

  3. Modification de la "cible de la plateforme" de "Tout processeur" à "x64".

Cela a résolu le problème.

1
Daniel Bonetti

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 en mode 32 bits (ou inversement). Vous pouvez suivre ce guide forcer votre application à s'exécuter en tant que 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 défini explicitement.

enter image description here

Changer cette option de Any CPU à X86 résolu mon erreur et j'ai pu me connecter au fournisseur Oracle.

1
John August

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

Après de nombreuses expériences, nous avons compris ce qui n'allait pas:

Lesdites machines auraient des applications qui utilisaient les pilotes Oracle à l’échelle de la machine, les verrouillant en silence et empêchant le programme d’installation du pilote Oracle de fonctionner de façon magique lorsqu’il tenterait de mettre à niveau/réinstaller lesdits pilotes Oracle. Les "applications" les plus sournoises sont les sites Web exécutés dans IIS et similaires, car ces applications se lancent essentiellement au redémarrage. Pour remédier à cela, procédez comme suit:

  1. Désactivez IIS à partir du démarrage automatique au redémarrage. Faites de même pour toutes les autres applications/services qui se lancent automatiquement au redémarrage.
  2. Désinstallez tout pilote Oracle précédent et vérifiez qu'il n'y a aucune trace laissée dans le registre ou les dossiers.
  3. Redémarrer la machine
  4. (Ré) installez les pilotes Oracle et réactivez IIS et d'autres applications à démarrage automatique.
  5. Redémarrez la machine <- Ceci est vital. Les pilotes Oracle OLE DB ne fonctionneront que si vous redémarrez la machine.

Si cela ne fonctionne pas, rincez-le jusqu'à ce que le pilote de la base de données fonctionne OLE). J'espère que cela aidera quelqu'un qui a du mal à comprendre ce qui se passe.

0
XDS

En m'appuyant sur le conseil de Der Wolfs, j'ai désinstallé le client Oracle, puis installé à nouveau, en cliquant avec le bouton droit de la souris sur le programme d'installation et en l'exécutant en tant qu'administrateur. Ça a marché.

0
Nuno G

J'avais le même problème, mais ma solution consistait à conserver la cible de la plate-forme sous la forme d'une case à cocher N'importe quel processeur et UNCHECK Prefer 32 bits. Après l'avoir décochée, j'ai pu ouvrir une connexion avec le fournisseur.

Turn Prefer 32-bit off

0
Kris Westermann