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..)
En fait à l'exception de p_tray qui est un parametre IN tout les autres sont des parametre de sorties OUT..
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;
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 :
En fait j en ai besoin de passer que le premier parametre de la procedure (mais dois -je mentionner les autres en OUT???).
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
Merci d'avance pour toute aide ou suggestion.
Amicalement
Partager