Hi, i have a problem with a function call from
java.
I post here what i done, please help me.
//Create a type named arreglo
CREATE OR REPLACE TYPE ARREGLO IS VARRAY(28) OF VARCHAR2(50)
//Create a function that return an "arreglo" data type
CREATE OR REPLACE FUNCTION OBTIENEENTIDADES RETURN ARREGLO AS
datos ARREGLO := ARREGLO();
CURSOR c_datos is SELECT ENTIDAD_NOMBRE FROM A_ENTIDAD;
BEGIN
FOR cont IN c_datos LOOP
datos.extend;
datos(datos.count) := cont.ENTIDAD_NOMBRE;
END LOOP;
return datos;
END;
//Java code
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc
racle:thin:@197.0.0.245:1521:ASOFHEIN","SIAFDES","Q1E3T5");
OracleCallableStatement ocs = (OracleCallableStatement)con.prepareCall("{ ? = call OBTIENEENTIDADES}");
ocs.registerOutParameter(1, OracleTypes.ARRAY, "ARREGLO");
ocs.executeUpdate();
ARRAY sA = ocs.getARRAY(1);
String [] valores = (String[])sA.getArray();
for(int i=0; i<valores.length; i++){
System.out.println(valores[i]);
}
That code return an array of 28 positions but all the data is '???',
what is wrong with my code ?? Please help me
[ February 25, 2005: Message edited by: Bear Bibeault ]