[CallableStatement] pb insertion de parametre DBMS_JOB.submit
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 :
Code:
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(); |
A priori le code est bon, mais seulement j'ai une erreur ORacle derrière !!
je vous met le code de lancer_job :
Code:
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;
/ |
Suite a l'execution du statement j'ai une erreur qui apparait : mais je ne la comprends pas !!
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.