IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Connexions aux bases de données Oracle Discussion :

Encore et toujours: odbc_connect() [function.odbc-connect]: SQL error: [Oracle][ODBC][Ora]ORA-12705


Sujet :

Connexions aux bases de données Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 25
    Points
    25
    Par défaut Encore et toujours: odbc_connect() [function.odbc-connect]: SQL error: [Oracle][ODBC][Ora]ORA-12705
    Bonjour,

    Je perds patience et n'ai quasiment plus de cheveux sur la tete >.<
    Je cherche a me connecter a Oracle 9i. La connexion marche puisque j'arrive a me connecter en utilisant Crystal Report, tnsping donne un resultat satisfaisant, et je peux faire des requete SQL avec SQL Plus... Mais via php c'est le desastre complet et pourtant c'est mon but ultime: UTILISER PHP POUR ATTEINDRE ORACLE!!

    Contexte:
    • easyPhp
    • Appache
    • OraHome92
    • Instant Client 10
    • php_oci8.dll accepte malgre un tit probleme de dependance avec mpr.dll
    • Ne nombreuses tentatives sans succes...


    Il y a l'Instant client et OraHome92, car j'ai essaye toutes les methode que j'ai trouve. J'ai unset et set ORACLE_HOME et NLS_LANG une bonne dizaine de fois, j'ai essaye de reinstaller mpr.dll, j'ai mis ora92 et oci8 dans le repertoire System32... tout. Et RIEN. J'ai meme fait une connection ODBC qui marche (j'ai un succes lors du test) mais rien avec php!!

    les essaies:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $dsn="blabla";
    $username="user";
    $password="mdp";
     
    $cnx = odbc_connect($dsn, $username, $password);
     
    If($cnx)
    {echo "Connexion ODBC réussie";}

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $dsn="Driver={Oracle in OraHome92};"."Server=server;"."dB;"."uid=user;pwd=mdp";
               $conn  =  odbc_connect($dsn,"user","mdp");
               if (!$conn) {echo odbc_errormsg();
                exit(" Failed: " .$conn."</br><font color='red'><b>blabla </b></font>");}

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ora_user =     "user";    //username
    $ora_pass =    "mdp";            //user password
    $ora_host =    "host";
    $ora_db   =     'db';    //database name
     
    //$ora_conn = oci_connect($ora_user,$ora_pass,'//'.$ora_host.'/'.$ora_db);
    $ora_conn = oci_connect($ora_user,$ora_pass, $ora_host);

    et toujours la meme erreur (quoi que non parfois ca change, mais le plus souvent:

    odbc_connect() [function.odbc-connect]: SQL error: [Oracle][ODBC][Ora]ORA-12705: Cannot access NLS data files or invalid environment specified , SQL state S1000 in SQLConnect
    Heeeeelp please !
    Je vais devenir chèvre

    Celine

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 160
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Je m'y connais pas en PHP, j'ai simplement fait une recherche Google sur to ncode erreur et j'ai trouvé pas mal de liens dont un à l'air de ressembler à ton problème :

    http://www.developpez.net/forums/d85...in-sqlconnect/

    Sinon hésites pas à utiliser Google aussi !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    Aaarrrgghh!
    Ca y est, je deviens chevre
    Merci beaucoup pour ton conseil... mais si tu crois que je site tous les exemples ci-dessus et que j'explique un peu tout ce que j'ai essaye, c'est que je n'ai pas googler????...
    Argh! Tu me fends le coeur...C'est une insulte (a dire avec l'accent marseillais)
    Bien sur que je google avant de poster un message ici. Ca fait un mois que je google
    En plus la solution essayee dans ton lien est sensiblement la meme que la mienne (numero 2) et je n'ai pas le meme message d'erreur (na! d'abord)

    En tous cas merci, mais ca ne fonctionne touyours po

    Celine

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    C'est odbc et rien d'autre que tu dois utiliser ?
    Parce que si tu as installé oci8, c'est plutôt oci_connect que tu dois utiliser plutôt que odbc_connect.
    The Underground PHP and Oracle Manual
    Dans le pdf chapitre 9 page 101 CONNECTING TO ORACLE USING OCI8 devrait t'aider, mais vérifie avant que ton installation est conforme, tout est dans le pdf.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    Ben j'ai persiste sur l'odbc, car l'oci me faisait la tete quoi que je fasse (pourtant j'ai suivi toute les consignes du pdf joint)
    Et apres de nombreuses batailles acharnees j'ai reussi (le probleme c'est qu'au final je ne sais pas ce qui a vraiment marche) mais j'utilise Microsoft ODBC pour oracle; je cree le DSN et je l'exploite... Ca marche.

    Par contre, ma joie fut de courte duree T-T
    Car finalement tous ces tests etaient en localhost, sur ma petite machine windows XP 32-bit... mais le but est ensuite de mettre tout ca sur le server... 64 bit!!
    Et la c'est le drame! La methode ne marche plus. J'ai bien reussi a creer un DSN avec Microsoft ODBC pour Oracle, mais en passant par le odbcad32.exe qui est sous SysWOW64... mais j'obtiens l'erreur

    Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC driver for Oracle][Oracle], SQL state NA000 in SQLConnect in
    Et si je persiste a me battre avec l'oci, j'ai:
    OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries in
    Pourtant j'ai re re re verifier, et mon PATH indique bien ou est l'instant client...

    Petite update: j'ai essaye la methode http://blogs.oracle.com/opal/entry/u...ith_32-bit_php
    qui dit de tout mettre sous SysWOW64, et...
    SQL error: Specified driver could not be loaded due to system error 1114: A dynamic link library (DLL) initialization routine failed. (Oracle in instantclient_11_2, C:\Windows\SysWOW64\instantclient_10_2\SQORA32.dll)., SQL state IM003 in SQLConnect
    Et erreur 1114 est une des erreurs les plus rencontrees et inexpliquee sur le forum oracle...

    Une idee?

    (desolee pour le temps de reponse... j'avance sur plusieurs problemes en meme temps pour eviter de devenir chevre, mais du coup certains problemes avancent tres lentement)

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    Yeeeaaaahhh!!

    J'ai enfin trouve!!
    Donc, les différentes recherches m'ont amenés aux résultats suivant pour Windows Server 2008 R2 - 64 bits avec Apache:

    1. Télécharger l'instant client basic 11g - 32 bits (peu important la version de la base de données Oracle, 11g comprend les DB plus anciennes)
    2. Le dezipper sous Windows/SysWOW64/Instantclient (important pour php qui est en 32 bits; system32 est pour le 64bits)
    3. Dans les variables d'environment windows, updater le PATH en rajoutant C:/Windows/System32/InstantClient (et ajouter NLS_LANG si nécessaire)
    (windows ira automatiquement chercher dans sysWOW64 pour php en détectant que celui-ci est 32bits; donc ne pas s'inquiéter et indiquer System32)
    4. copier les dll de l'instant client sous SysWOW64 et Apache/bin (très important ce dernier point... c'est ca qui a tout changé; le reste est indiqué dans tout les manuels php Oracle sur internet) (je les ai peut être copie ailleurs... mais je ne sais pas quel autre dossier nécessite vraiment les dll; dans apache/bin, je n'ai pas cherché j'ai copié TOUTES les dll)
    5. Rajouter l'extension php_oci8_11g dans la configuration de php (la, si ca beug il faut vérifier si il ne manque pas des dll dans php/ext)
    6. redémarrer le PC pour les variables windows

    J'ai fait d'autres manip que je ne pense pas être forcement nécessaires mais il fallait que je trouve une solution (telle que rajouter les SetEnv dans http (config apache) ou les TNS_ADMIN setting avec un folder contenant tnsnames.ora)
    (ah, et ne pas initialiser ORACLE_HOME; ca ne sert définitivement a rien pour l'instant client)
    En tous cas: CA MARCHE!!
    Mouhahaha!

    C'est toujours jouissif de trouver la solution!
    (happy)

  7. #7
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Juste petite rectification :

    Citation Envoyé par dufeu.celine Voir le message
    1. Télécharger l'instant client basic 11g - 32 bits (peu important la version de la base de données Oracle, 11g comprend les DB plus anciennes)
    Faux. A chaque version d'une version oracle, le support de vielles version server par les client saute !

    Par un exemple, un client 11g ne peut se connecter à un 8i ou 9.0...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  8. #8
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par Vincent Rogier Voir le message
    Faux. A chaque version d'une version oracle, le support de vielles version server par les client saute !

    Par un exemple, un client 11g ne peut se connecter à un 8i ou 9.0...
    Une chose est sure, c'est que si on a le choix, il faut prendre un client de la même version que le serveur, ou avec une version d'écart au maximum.

    Pour le reste, il faut distinguer "fonctionner" et "être supporté".
    D'après la note Metalink 207303.1, Oracle assure tout à fait le support pour la combinaison client 11g <--> serveur 9iR2.
    Alors qu'il n'y a pas de support, par exemple, pour le couple client 8i <--> serveur 11g.
    Pourtant, un client m'a récemment certifié qu'ils ont une application qui fonctionne parfaitement, depuis des mois, entre en client 8.1.7 et un serveur 11.2.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Se connecter à SQL Server en ODBC ou autre
    Par mapmip dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 07/09/2013, 12h38
  2. Réponses: 2
    Dernier message: 15/09/2011, 13h53
  3. Réponses: 0
    Dernier message: 18/05/2010, 17h16
  4. Problème ODBC Connect SQL DIRECT
    Par lbar012001 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 01/07/2009, 08h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo