passage paramétre IN Procedure oracle en PHP
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:
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:
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 :
Citation:
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