Bonjour, j'ai un petit probleme dont je ne comprends pas la cause.
je veux lancer une procédure stockée avec des paramètres mais malheureusement cela ne fonctionne pas !
voici mon code Java :
A priori le code est bon, mais seulement j'ai une erreur ORacle derrière !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 String sql = {call lancer_job(?,?)}; Date date = getDate(); // Java.sql.date String s = "'AM_TEST;'" // il y a des 'cotes' autour de AM_TEST CallableStatement st = connexion.prepareCall(sql); st.setString(1,s); st.setDate(2,date); st.execute();
je vous met le code de lancer_job :
Suite a l'execution du statement j'ai une erreur qui apparait : mais je ne la comprends pas !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE OR REPLACE PROCEDURE lancer_job(unNom IN VARCHAR2, uneDate IN DATE) IS pl_no_job BINARY_INTEGER; BEGIN DBMS_JOB.submit(pl_no_job, unNom, uneDate, 'sysdate+1'); commit; END lancer_job; /
ORA-06550: line1, column 125 :
PLS-00103 : Encoutered the symbol "END" when expecting one of the following:
:= . 5 @ % ;
The symbol ";" was substitued for "END" to continue.
ORA-06512: at "SYS.DBMS_JOB", line 79
ORA-06512: at "SYS.DBMS_JOB", line 136
ORA-06512: at "F.LANCER_JOB", line 5
le probleme c'est que j'avais tester cette méthode en dur !!
avec le submit avec que de parametre en dur le call fonctionne tres bien (sans paramètre biensur) et cela marchait : voici la ligne du submit dans le fichier sql.
DBMS_JOB.submit(pl_no_job, 'AM_TEST;', sysdate, 'sysdate+1');
Donc mon probleme est de passer les bon paramètres via la méthode call...
si quelqu'un voit ou il y a une erreur je veux bien qu'il m'aide
merci d'avance.
Partager