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é