inandjo la faim justifie les moyens! | Bonjour,
j'ai une procedure stockée dans une base oracle 9i qui est la suivante:
Code :
- create or replace procedure myproc4(dno number, perc number)
- is
- cursor emp_cur (dept_no number) is
- select sal from emp where deptno=dept_no for update of sal;
- empsal number(8);
- begin
- open emp_cur(dno);
- loop
- fetch emp_cur into empsal;
- exit when emp_cur%NOTFOUND;
- update emp set sal=empsal*(perc/100)
- where current of emp_cur;
- end loop;
- close emp_cur;
- commit;
- end myproc4;
|
Dans la table emp, la column sal est un number(4,2).
Depuis mon code java, j'appelle cette PS de la maniére suivante:
Code :
- CallableStatement cs = con.prepareCall("{ call myproc4(?,?)}" );
- cs.setString(1,deptno);
- cs.setString(2,percentage);
-
- cs.registerOutParameter(1, Types.VARCHAR);
- cs.registerOutParameter(2, Types.INTEGER);
-
- ResultSet res =(ResultSet) cs.executeQuery();
-
- while (res.next()){
- String s = res.getString(1)+" "+res.getString(2);
- system.out.println(" PROC PARAMS ARE : "+s);
- }
- cs.close();
- res.close();
-
- } catch (SQLException sqle){
- ...;
- }
- }
|
Quand j'execute mon code, je recois l'erreur suivante:
Code :
- ORA-00600: code erreur interne, arguments : [12259], [], [], [], [], [], [], []
|
J'ai googler cette erreur, mais je n'ai rien trouvé de significatif, et ce d'autant que la colonne sal n'est pas updater.
Je ne comprends pas l'erreur qui bloque et empeche cet update, d'autant que j'ai change percentage de int, a double et meme float dans mon code java, mais ces changements ont été sans effets notables!
Merci!
---------------
The bible was written by people who believed the earth was flat!
|