Ciao a tutti,
ho questo problema:

ho un applicazione Java che si deve collegare ad un database Oracle e che deve richiamare una procedura.

Nel package della procedura sono definiti questi tipi custom:


codice:
TYPE tipo_record 
IS RECORD
(
 stringa                 varchar2(4),
 numero                  number
);

TYPE tipo_tabella IS TABLE OF tipo_record  INDEX BY BINARY_INTEGER;

La procedura invece è fatta in questo modo:


codice:
PROCEDURE MIA_PROCEDURA(
  par OUT tipo_tabella
);

La procedura quindi ritorna come parametro in uscita un oggetto del tipo custom che è stato definito sopra.

Ora il problema è recuperare il valore in uscita da java.

ho provato in mille modi...ma niente.

Per esempio:



codice:
 OracleCallableStatement cs = (OracleCallableStatement)con.prepareCall("{call MIA_PROCEDURA(?)}");
  cs.registerOutParameter(1,oracle.jdbc.driver.OracleTypes.CURSOR);
  
  cs.execute();
  
  ResultSet rs = cs.getCursor(1);

oppure



codice:
 OracleCallableStatement cs = (OracleCallableStatement)con.prepareCall("{call MIA_PROCEDURA(?)}");
  cs.registerOutParameter(1,oracle.jdbc.driver.OracleTypes.ARRAY,"TIPO_TABELLA");
  
  cs.execute();
  
  oracle.sql.ARRAY arr = cs.getARRAY(1);


Tutti tentativi vani....

Qualcuno mi potebbe aiutare?

GRAZIE.
Paolo.