Oracle
 sql >> Database >  >> RDS >> Oracle

Come chiamare la procedura di ritorno Oracle CURSOR in Java

Più o meno allo stesso modo di PHP:

String dbCall = "{ ? = call pa_internal_admin.fn_search_level_1(?) }";
proc = dbConn.connection().prepareCall( dbCall );
proc.registerOutParameter(1, OracleTypes.CURSOR);
proc.setString(2, searchText);

O se preferisci, per essere ancora più simile:

String dbCall = "BEGIN ? := pa_internal_admin.fn_search_level_1(?); END;";

Hai provato a chiamarla come una procedura con due parametri, piuttosto che una funzione con uno; non puoi cambiarlo arbitrariamente nella tua chiamata.

Puoi ripristinare il cursore con:

OracleResultSet rSet = (OracleResultSet) proc.getCursor(1);

... e poi trattalo come qualsiasi altro set di risultati.