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
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:
cd \Oracle\product\11.2.0\client_64\BIN
c:\Windows\system32\regsvr32.exe OraOLEDB11.dll
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.
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.
;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 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:
Faites un clic droit sur le nom du projet (sur le panneau de l'Explorateur de solutions, localisez, en général, à gauche)
Cliqué sur 'Construire' (dans la nouvelle fenêtre ouverte)
Modification de la "cible de la plateforme" de "Tout processeur" à "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 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.
Changer cette option de Any CPU
à X86
résolu mon erreur et j'ai pu me connecter au fournisseur Oracle.
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:
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.
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é.