Java fornisce CallableStatements
per tali scopi.
CallableStatement cstmt = conn.prepareCall("{? = CALL total_cancellations()}");
cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.setInt(2, acctNo);
cstmt.executeUpdate();
int cancel= cstmt.getInt(1);
System.out.print("Cancellation is "+cancel);
stamperà lo stesso che fai in pl/sql. Come da documenti Connection#prepareCall()
,
Crea un oggetto CallableStatement per chiamare le stored procedure del database. L'oggetto CallableStatement fornisce metodi per impostare i parametri IN e OUT e metodi per eseguire la chiamata a una stored procedure.
È anche possibile passare parametri per la funzione. per esempio,
conn.prepareCall("{? = CALL total_cancellations(?)}");
cstmt.setInt(2, value);
passerà i valori alla funzione come parametro di input.
Spero che questo aiuti!