J'essaie de développer une application C # Windows Forms ciblant le cadre .NET 4. Le programme exécutera une procédure stockée contre une base de données Oracle et je reçois l'erreur suivante lorsque j'essaie d'ouvrir la connexion à la base de données. P>
ORA-12557 TNS: Adaptateur de protocole non chargable p>
Je développe cela dans Visual Studio 2012 et j'ai réussi à faire connecter l'explorateur de serveur à la base de données avec succès, mais je continue à obtenir cette erreur via ma candidature. P>
J'ai deux clients Oracle 11G sur ma machine. L'un est 32 bits et l'autre est 64 bits. J'ai besoin des deux pour différentes applications, il n'est donc pas possible de le supprimer. J'ai également essayé de changer l'ordre des répertoires Oracle Home dans la variable du chemin. Actuellement, j'ai le 64 bit d'abord qui est celui que je voudrais me connecter. p>
Je connecte mon application à la base de données à l'aide d'ODP.net et avez référencé la DLL de l'application 64 bits. p>
Autant que je puisse dire, j'ai fait ce qui a été suggéré et n'a pas réussi à le faire fonctionner. Si quelqu'un pouvait aider cela serait apprécié. P>
4 Réponses :
L'erreur ORA-12577 est liée à Windows Environment ou Oracle Home Chemin car la commande SQLPlus fonctionne correctement lorsque je l'exécute à l'intérieur de l'oracle_home \ bin. C'est à cause de deux ou plusieurs installations d'Oracle (disent la base de données et un compagnon) dans des oracles séparés sur cette machine non définie la valeur Oracle_Home dans votre fenêtre Pour plus de détails, veuillez suivre les étapes suivantes et espérons que vous obtiendrez la solution. http://www.dba-oracle.com/t_ora_12577.htm p>
J'ai examiné cet article et j'ai essayé de changer l'ordre de l'oracle_homes dans la variable de chemin comme mentionné ci-dessus. C'est probablement quelque chose que quelque chose sur ces lignes mais la modifiant dans le chemin ne le répare pas.
Eh bien James, j'ai fait face au même problème et j'ai installé Home / DB_1 pour DB Installer, puis à la maison / client_1. Je suis allé dans des variables système après l'installation de client et modifié le chemin de la maison / client_1 à HOME / dB_1 et n'obtenez pas d'erreur.
Vous avez raison. J'ai aussi dû supprimer la variable Oracle_Home que j'avais ajoutée. Plus susceptibles de résoudre un autre problème que j'avais à un moment donné, ce qui, espérons-le, ne serait pas resturfer. Cependant, obtenir les chemins dans le bon ordre travaillés. L'autre problème était que je n'avais pas compris que la mise à jour de la variable de chemin de chemin n'aurait pas affecté dans mon programme avant d'avoir redémarré Visual Studio. Merci!
Il convient probablement également de mentionner à des fins futures que j'avais un client_1 et client_2 plutôt que client et dB. Je devais d'abord mettre le répertoire client client_1, puis le répertoire CLIENT_1 BIN avant tous les répertoires client_2.
Bien que cela puisse être évident pour certains, je devais mettre à jour l'entrée de registre pour Oracle_Home. My Environnement Les chemins variables étaient tous corrects, mais dans mon cas, les paramètres de registre étaient tous configurés pour Oracle32 au lieu d'Oracle64. Emplacement du registre: HKEY_LOCAL_MACHINE \ logiciel \ oracle \ key_oraclient11g_home1
Sur la mise à jour du chemin (et toute autre variable d'environnement). N'oubliez pas que ce n'est pas un problème d'oracle. Les paramètres de respiornementation sont définis / hérités au moment du démarrage d'un processus (tout processus). Changer les seuls processus d'effets commencés après le changement. Encore une fois, l'opération de base du système d'exploitation, pas une question de comportement ou de contrôle Oracle.
Le problème de base est qu'il manque des DLL dans l'installation de client instantanée Oracle qui existent dans l'installation du serveur RDBMS que l'application nécessite. C'est pourquoi la commutation des maisons Oracle de client_1 sur DB_1 fonctionne, plutôt que d'être un problème purement un chemin. P>
SQLPlus fonctionne dans l'une ou l'autre situation, car il utilise l'ensemble minimal de DLL qui existent dans les deux installations Oracle. P>
Ce n'était pas parce que vous êtes passé d'un "client" chez une maison "base de données". C'est parce que vous avez changé d'un client instantané i> à une maison avec un client d'exécution complet, que la maison de base de données a. Si votre client a été installé avec le client «EU-TIME» au lieu du client «Instant», je parierai qu'il aurait fonctionné.
Voici quelques éléments à vérifier. N'oubliez pas d'essayer N ° 3 si nécessaire, cela corrige le problème pour moi! P>
fissh p>
Pour moi, j'utilise le fournisseur IIS .NET. J'ai pu résoudre le problème avec SQLPlus en mettant Oracle64 avant Oracle32 sur le chemin. Cela n'a pas corrigé les problèmes avec .NET. J'ai des applications qui utilisent Oracle32 et Oracle64. Pour résoudre ce problème Clés de registre HKEY_LOCAL_MACHINE \ logiciel \ wow6432node \ oracle doit pointer sur \ oracle32 HOME et HKEY_LOCAL_MACHINE \ logiciel \ oracle doivent pointer sur la maison \ oracle (64). P>