Ver Mensaje Individual
  #1  
Antiguo 17-05-2004
samuvk samuvk is offline
Registrado
 
Registrado: may 2004
Posts: 8
Reputación: 0
samuvk Va por buen camino
Insertar un array en un procedimiento de Oracle con JDBC

Hola de nuevo y buenas tardes:

Como habreis podido observar por mis problemas estoy trabajando con JDBC y tengo
bastantes incovenientes con el tema de los tipos de datos que me traen loco.

Tengo un pequeño problema. Necesito insertar un array en un procedimiento de
Oracle a través del JDBC. He realizado el siguiente código:


String aString="hola";
//Creo el array
String [] tabla= new String[100];


//Introduzco 2 valores en el array
tabla[1]="palabra1";
tabla[2]="palabra2";


CallableStatement cstmt = null;
try
{
//Creo la llamada al procedimiento y le paso los 2 parametros de entrada en (?,?)
cstmt = con.prepareCall("begin usuario.paquete.procedimiento (?,?); end;");
//Inserto la palabra hola en el primer parametro de entrada
cstmt.setString(1, aString);
//Ahora quiero introducir el array Tabla en el segundo parametro de entrada el array
//pero si lo pongo asi no cuela por que no existe setArray
//cstmt.setArray(2, tabla);
//Con lo cual lo intento de la siguiente forma pero me da el siguiente error: Tipo de
// columna no valido
cstmt.setObject(2, tabla);
cstmt.execute();
Catch (SQLException ejecucion)
{System.out.println("Error: " + ejecucion.getMessage());}



La llamada al paquete siguiente desde oracle funciona correctamente:

BEGIN
v_tablain(1) := 'palabra1';
v_tablain(2) := 'palabra2';
v_numfilas := 2;
paquete.porcedimiento ('palabra0',v_tablain);
END;
/



Me gustaria poder realizar la misma llamada desde Java con JDBC, pero no entiendo por que no
me funciona tal y como lo he hecho.


Muchas Gracias tanto si podeis como sino ayudarme.
Responder Con Cita