OraOLEDB.Oracle fournisseur n'est pas enregistré sur la machine locale
je viens de migrer de XP à Win 7. Je suppose que cette erreur est liée à la commutation des systèmes d'exploitation. J'ai écrit une application .net qui masse essentiellement une grande quantité de données et se connecte ensuite à une base de données et insère/met à jour une table.
lorsque j'appuie sur un bouton pour me connecter à la base de données, je tombe sur une erreur concernant le fournisseur oracle qui n'est pas enregistré sur ma machine locale.
un aperçu clair, étape par étape de la façon dont je peux réparer cela rapidement serait beaucoup apprécier.
Le message d'erreur exact est:
'OraOLEDB.Oracle.1' fournisseur n'est pas enregistré sur la machine locale
11 réponses
j'ai eu le même problème après avoir installé le client Oracle 64 bits sur Windows 7 64 bit. La solution qui a fonctionné pour moi:
- Ouvrez une invite de commande en mode administrateur
cd \oracle\product.2.0\client_64\BIN
c:\Windows\system32\regsvr32.exe OraOLEDB11.dll
faire le test suivant:
ouvrez une invite de commande et tapez: tnsping instance_name
où instance_name est le nom de l'instance que vous voulez connecter (si c'est une base de données XE, utilisez "tnsping xe"
si elle retourne ok, suivez les étapes de la réponse de Der Wolf. Si elle ne retourne pas ok, suivez les étapes de la réponse D'Annjawn.
C'est résolu pour moi dans les deux cas.
j'ai eu le même problème à l'aide de IIS.
assurez-vous que l'option 'Enable 32bit Applications' est définie à true sur la Configuration avancée du Pool D'applications.
- clic droit sur mon ordinateur
- Cliquez sur propriétés
- cliquez sur Paramètres Système avancés
- Cliquez sur "Variables d'Environnement".
- dans la section Variable système trouver la variable "PATH"
- éditez la variable "PATH" et ajoutez le chemin D'installation D'Oracle (à partir de votre machine locale) comme
;C:\oracle\product.2.0\client_1\bin
Si vous avez windows 64 bits, essayez d'installer le pilote oracle 32 bits d'abord, puis 64 bits pilote, c'est ce que je fais et travaille
cela n'a fonctionné pour moi qu'après que j'ai changé la 'cible Plate-Forme' En 'x64' (considérant que J'utilise Oracle 12c 64 bits)
Pour ce faire, j'ai fait:
clic droit sur le nom du projet (au panneau Solution Explorer localisez, en général, à gauche)
cliqué sur' Build ' (dans la nouvelle fenêtre ouverte)
a changé la 'cible plate-forme' de' N'importe quel CPU 'en' x64'
qui est résolu problème.
si vous obtenez ceci dans un c# projet, vérifiez si vous êtes en mode 64-bit ou 32-bit 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 trouvez que vous êtes en mode 64 bits, vous pouvez essayer de passer à 32 bits (ou vice versa). Vous pouvez suivez ce guide pour forcer votre application à exécuter 64 ou 32 bits (x64 et X86 respectivement). Vous devez assurez-vous que Platform Target
dans votre projet, les propriétés ne sont pas définies à Any CPU
et que c'est un ensemble explicite.
commutation de cette option de Any CPU
X86
résolu mon erreur et j'ai pu me connecter au fournisseur Oracle.
après avoir passé des heures à corriger cela; et pour certains qui l'ont installé incorrectement, vous devez désinstaller la version actuelle et la réinstaller à nouveau en tant qu'administrateur
en M'appuyant sur Der Wolfs tip, j'ai désinstallé le client Oracle et je l'ai installé de nouveau, en cliquant avec le bouton droit de la souris sur le programme de configuration, et exécuter en tant que Administrateur. Il a travaillé.
mon équipe tombait sur cette question de temps en temps dans des machines aléatoires dans lesquelles nous essayions d'installer notre plate-forme (nous utilisons les pilotes oracle 12c ver 12.2.0.4 mais nous avons rencontré ce bogue avec d'autres versions)
Après un peu d'expérimentation, nous avons réalisé ce qui était faux:
lesdites machines auraient des applications qui utilisent les pilotes oracle à l'échelle de la machine en les verrouillant silencieusement et en empêchant le pilote-installateur d'oracle de faire son travail magique quand tenterait de mettre à jour/réinstaller les pilotes oracle. Le plus sournois " app " serait les sites Web courant dans IIS et les semblables parce que ces applications essentiellement auto-Démarrer sur le redémarrage. Pour contrer cela, nous faisons ce qui suit:
- désactiver IIS à partir du démarrage automatique lors du redémarrage. Faites la même chose pour toutes les autres applications/services qui se redémarrent automatiquement.
- désinstaller tout pilote Oracle précédent et vérifier qu'il n'y a pas de traces laissées dans le registre ou dossier.
- redémarrez la machine
- (Ré)Installer les pilotes Oracle et re-activer IIS et d'autres de démarrage automatique des applications.
- redémarrez la machine < - c'est vital. Les pilotes OLE DB d'Oracle ne fonctionneront pas si vous ne redémarrez pas la machine.
si cela ne fonctionne pas alors rincer répéter jusqu'à ce que les pilotes OLE DB fonctionnent. J'espère que ça aidera quelqu'un qui se bat pour comprendre ce qui se passe.
j'avais le même problème mais ma solution était de garder la cible de la plate-forme comme N'importe quel CPU et UNCHECK préfèrent la case à cocher 32 bits. Après j'ai décoché j'ai été en mesure d'ouvrir une connexion avec le fournisseur.