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

PHP & Base de données Discussion :

[PHP 4.3] Appel Procédure stockée KO [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut [PHP 4.3] Appel Procédure stockée KO
    Bonjour,

    Je n'arrive pas à faire fonctionner des appels à des procédures stockées ou à du simple code PlSql, j'ai pris plusieurs exemples sur le net mais aucun ne fonctionne...

    Voici ma procédure Plsql toute simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE OR REPLACE procedure myproc (p1 in number, p2 out number) as
    begin
      p2 := p1 * 2;
    end;
    Et le premier appel PHP avec les fonctions OCI qui me renvoi l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-00000: exécution normale, réussie -- while processing OCI function OOPEN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $conn = ora_logon("XX@XX", "XX");
    $curseur = ora_open($conn);
     
    $p1 = 10;
    $stid = ociparse($conn, 'begin myproc(:p1, :p2); end;');
    ocibindbyname($stid, ':p1', $p1);
    ocibindbyname($stid, ':p2', $p2, 40);
    $result=ociexecute($stid);
    if (!$result) {  
       echo "ERREUR";
       print(ora_error($curseur));
    }	
    print "==>".$p2;
    et le deuxième appel php avec les fonctions ora_ qui me renvoi la même erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $conn = ora_logon("XX@XX", "XX");
    $curseur = ora_open($conn);
     
    $p1 = 10;
    $req = ora_parse($curseur, 'begin myproc(:p1, :p2); end;');
    ora_bind($curseur, 'p1', ':p1',20,1);
    ora_bind($curseur, 'p2', ':p2',$p2,2);
    $result = ora_exec($curseur);
    if (!$result) {  
       echo "ERREUR";
       print(ora_error($curseur));				}												
    print "p1==>".$p1; 
    print "p2==>".$p2;
    Ma connection avec la base Oracle fonctionne puisque j'arrive à faire sans problème des requêtes select,...

    Merci de votre aide. Je commence à être désespéré

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    mea culpa, la première méthode avec les fonction oci fonctionne, encore faut-il récupérer la connexion avec OCILogon !

    Le code suivant fonctionne donc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $conn=OCILogon("XXX", "XXX", "XXX");
     
    $p1 = 10;
    $stid = ociparse($conn, 'begin myproc(:p1, :p2); end;');
    ocibindbyname($stid, ':p1', $p1);
    ocibindbyname($stid, ':p2', $p2, 40);
    $result=ociexecute($stid);
    if (!$result) {  
       echo "ERREUR";
       print(ora_error($curseur));
    }	
    print "==>".$p2;

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

Discussions similaires

  1. Appel procédure stockée via PHP
    Par yan44 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 26/07/2010, 11h15
  2. [PHP5]Appel procédure stockée
    Par maKyo dans le forum DB2
    Réponses: 2
    Dernier message: 02/03/2007, 12h04
  3. Réponses: 2
    Dernier message: 20/03/2006, 10h39
  4. Appeler Procédure stockée depuis ACCESS
    Par Sunny dans le forum Access
    Réponses: 2
    Dernier message: 13/09/2005, 23h07
  5. [PL/SQL] Appel procédure stockée dans trigger
    Par Félia dans le forum Oracle
    Réponses: 3
    Dernier message: 24/01/2005, 18h25

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