Bonjour,
Je vous expose mon soucis:
[Ne vous demandez pas l'utilité profonde de ce qui va suivre, c'est juste du teste]

J'ai créé une procédure bidon via PHP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
create or replace
procedure Tist
  (
    Calcu   in out test2.ville%type,
    Valeurs in out test2.numero%type)
as
begin
  Calcu:='Londres';
  select numero into Valeurs from test2 where ville = Calcu;
 
  Valeurs := mod(Valeurs,4);
  dbms_output.put_line(Calcu || ' ' || Valeurs);
end;
[j'indente la code, c'est tellement plus agréable à lire, mais a noter que PHP n'aime pas ça]

Maintenant j'aimerais récupérer les variables Calcu et Valeurs, j'ai essayé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
$plsql="begin Tist(:Calcu,:Valeurs); end;";
$s= oci_parse($c1, $plsql);
 
#Liaison des variables oracle et php
OCI_Bind_By_Name ($s, ":Calcu", $cal , -1);
OCI_Bind_By_Name ($s, ":Valeurs", $val , -1);
$r=oci_execute($s);
echo $cal." | ". $val;
oci_free_statement($s);
Voici le résultat:
Warning: oci_execute() [function.oci-execute]: ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: tampon de chaîne de caractères trop petit ORA-06512: à "***.TIST", ligne 1 ORA-06512: à ligne 1 in C:\*** on line 16
|
Seulement, Calcu est de type ville i.e VARCHAR[50] et Valeurs de type numero i.e NUMBER[4,0]

Si quelqu'un à une idée de solution?
Je continue a chercher de mon coté

D'avance, merci