sql >> Databáze >  >> RDS >> Oracle

Jak zavolat proceduru návratu Oracle CURSOR v jazyce Java

Téměř stejným způsobem jako 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);

Nebo chcete-li, být ještě podobnější:

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

Pokusili jste se to volat jako proceduru se dvěma parametry, spíše než funkci s jedním; to nemůžete ve svém hovoru svévolně změnit.

Kurzor můžete vrátit zpět pomocí:

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

... a pak s ním zacházejte jako s jakoukoli jinou sadou výsledků.




  1. Jak opravit „příkaz EXECUTE selhal, protože jeho klauzule WITH RESULT SETS specifikovala 1 sadu výsledků…“ na serveru SQL Server

  2. Flask :sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError) vztah uživatelé neexistuje

  3. Vyhledávání pomocí regulárních výrazů Mysql bez opakujících se znaků

  4. Můj web Joomla spadne s tímto chybovým kódem SQL