problema con llamada a una Function de Oracle

pyramig
29 de Octubre del 2004
Hola, tengo un problema a la hora de llamar a un function declarada dentro de paquete de Oracle 9 desde Java.

La declaracion de la funcion es la siguiente:
PROCEDURE add_consulta_ticket(
p_ticket IN conexiones.ticket%TYPE,
p_esquema IN consultas.esquema%TYPE,
p_tabla IN consultas.tabla%TYPE,
p_texto_consulta IN consultas.texto_consulta%TYPE,
p_coderror OUT errores_genericos.codigo%TYPE)
IS
......

Y la llamada desde el codigo java, es la siguiente:

conexion = this.objConexion.conseguirConexion();
Statement stmt=conexion.createStatement();

String query="SELECT PKG_APLICACIONES.EXISTE_CLAVE_APLI_USU('"+dni+"',"+tipoIdentificacion+","+codAplicacion+") FROM DUAL";
ResultSet rs=stmt.executeQuery(query);

La cuestión, es que me salta una excepcion en la que dice da error en el tipo o numero de parametros.

Supongo que es debido al parametro que registra como de salida, y no se como hacer la llamda.


Gracias, y salu2

Juan Carlos Burgos
29 de Octubre del 2004
Primero que todo no se si en la funcion EXISTE_CLAVE_APLI_USU estas llamando el procedimiento.... la verdad yo utilizo las siguientes instrucciones:

DriverManager.registerDriver(new oracle.jdbc.OracleDriver());

conn = DriverManager.getConnection(url, user,passwd );

*** Llamado a un procedimiento sin parametros ***
CallableStatement cstmt = conn.prepareCall("{ call pk_ah_archivo_mov.pr_borrar_t_archivo }");
cstmt.execute();

*** Llamado a un procedimiento con parametros de entrada ***
cstmt = conn.prepareCall("{ call pk_ah_archivo_mov.pr_poblar_t_archivo( ? ) }");
cstmt.setString( 1, c );
cstmt.execute();