Bonjour

Je voudrais s'il vous plais avoir une information concernant le passage des paramètres d'un procedure stockée dans oracle .

En effet, sur toad j'exécute la procédure comme suit ,SANS SOUCI , avec le resultat souhaité (ecriture dans un table..)
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
Declare  
--p_trayno  NUMBER;
p_trame_1 VARCHAR2(255);
p_trame_2 VARCHAR2(255);
p_trame_3 VARCHAR2(255);
p_trame_4 VARCHAR2(255);
p_trame_exp1 VARCHAR2(255);
p_trame_exp2 VARCHAR2(255);
p_trame_exp3 VARCHAR2(255);
p_trame_exp4 VARCHAR2(255);
p_msg VARCHAR2(255);
 
p_tray  NUMBER := 35764;
begin
 
 
PDL.Pr_envoi (
                         p_tray ,
                          p_trame_1 ,
                          p_trame_2 ,
                          p_trame_3 ,
                          p_trame_4 ,
                          p_trame_exp1 ,
                          p_trame_exp2 ,
                          p_trame_exp3 ,
                          p_trame_exp4 ,
                          p_msg) ;
 
                          end;
                          /
 commit;
En fait à l'exception de p_tray qui est un parametre IN tout les autres sont des parametre de sorties OUT..

Mon problème en fait survient lorsque je dois appeler la procedure en PHP :
Voici le bout du code concerné.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
$req_ecrire=
"
Begin PDL.pr_envoi(:tray_no,:p_trame_1,:p_trame_2,:p_trame_3,
:p_trame_4,:p_trame_exp1,:p_trame_exp2,
:p_trame_exp3,:p_trame_exp4); end;commit;";
 
$stmt_ecrire = OCIParse($conn,$req_ecrire);
oci_bind_by_name($stmt_ecrire ":tray_no", $tray_no, 8); // in parameter
oci_execute($stmt_ecrire);

Voici le message d'erreur que j 'obtiens :



Warning: oci_execute() [function.oci-execute]: ORA-06550: line 1, column 1: PLS-00103: Encountered the symbol "" when expecting one of the following: begin case declare exit for function goto if loop mod null package pragma procedure raise return select separate type update while with <identificateur> <identificateur entre guillemets> <variable bind> << form table call close current define delete fetch lock insert open rollback savepoint set sql execute commit forall merge library OPERATOR_ pipe The symbol "" was ignored. ORA-0655

En fait j en ai besoin de passer que le premier parametre de la procedure (mais dois -je mentionner les autres en OUT???).


Merci d'avance pour toute aide ou suggestion.

Amicalement