Procedimiento Almacenado
Buenas , quisiera saber como utilizar correctamente un store procedure .
lo tengo creado en la base de datos y quiero hacer insert a traves de él.
envio estos parametros y me sale un error.
Connection con = null;
CallableStatement cs=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
con = DriverManager.getConnection("jdbc:oracle:thin:@xxx.yyy.zzz.www:1521:denver", props);
******************
cs=con.prepareCall("{call INS_RES(?"+numero+",?sysdate,?"+sumilla+",'A','DETALLE',?SYSDATE)}");
cs.execute();
****************************
}
finally {
try {
if (cs != null) {
cs.close();
}
if (con != null) {
con.close(); // cierra la conexión
}
}
catch (Exception ex) {
out.println("Exception!");
ex.printStackTrace(out); // imprime las excepciones
out.flush(); // aqui termina el servlet
out.close(); // Termina la impresión de codigo HTML
}
}
return ;
}
lo tengo creado en la base de datos y quiero hacer insert a traves de él.
envio estos parametros y me sale un error.
Connection con = null;
CallableStatement cs=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
con = DriverManager.getConnection("jdbc:oracle:thin:@xxx.yyy.zzz.www:1521:denver", props);
******************
cs=con.prepareCall("{call INS_RES(?"+numero+",?sysdate,?"+sumilla+",'A','DETALLE',?SYSDATE)}");
cs.execute();
****************************
}
finally {
try {
if (cs != null) {
cs.close();
}
if (con != null) {
con.close(); // cierra la conexión
}
}
catch (Exception ex) {
out.println("Exception!");
ex.printStackTrace(out); // imprime las excepciones
out.flush(); // aqui termina el servlet
out.close(); // Termina la impresión de codigo HTML
}
}
return ;
}
Hola:
Deberias ponernos la pila de llamadas del error pero mirando el api hay dos cosas que no concuerdan con tu llamada.
call INS_RES(?"+numero+",?sysdate,?"+sumilla+",'A','DETALLE',?SYSDATE)
en el api son corchetes no parentesis , y los interrogantes no veo como pueden actuar ahi. Solo es el nombre del procedimiento y los argumentos.
Suerte.
Deberias ponernos la pila de llamadas del error pero mirando el api hay dos cosas que no concuerdan con tu llamada.
call INS_RES(?"+numero+",?sysdate,?"+sumilla+",'A','DETALLE',?SYSDATE)
en el api son corchetes no parentesis , y los interrogantes no veo como pueden actuar ahi. Solo es el nombre del procedimiento y los argumentos.
Suerte.