Llamada a un Procedimiento de un Paquete de Oracle con JDBC

Samuel
11 de Mayo del 2004
Estoy llamando a un porcedimiento de un paquete de Oracle desde Java con JDBC, pero una de las salidas que me produce el procedimiento es una tabla y no se como tratarla.

He realizado el siguiente código, y no se que es lo que esta mal:

String aString="transporte publico";

CallableStatement cstmt = null;
try
{ //FUNCION DE LLAMADA AL PAQUETE
cstmt = con.prepareCall("begin user1552.paqueteusuario.pr_qconcepto0 (?,?,?); end;");
//REGISTRO LA SALIDA DE LA TABLA COMO UN REF, se supone que es el tipo equivalente a ResultSet
cstmt.registerOutParameter(2,Types.REF);
//REGSITRO LAS SALIDA DEL ÚLTIMO PARAMETRO COMO UN ENTERO
cstmt.registerOutParameter(3, Types.INTEGER);
//INTRODUZCO EN LA POSICION UNO EL TERMINO QUE QUIERO
cstmt.setString(1,aString);
//OBTENGO EL NUMERO DE CONCEPTOS QUE TENGO PARA ESE TERMINO
int resultado2 = cstmt.getInt(3);
System.out.println(resultado2);
//EJECUTO
cstmt.execute(); }
catch (SQLException ejecucion)
{ System.out.println("Error: " + ejecucion.getMessage()); }

En java se compila bien, pero al ejecutarlo me da el siguiente error:
Tipo de parametro incompatible: sqlType=2006

Muchas Gracias