Java proporciona CallableStatements
para tales fines.
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);
imprimirá lo mismo que lo hace en pl/sql. Según los documentos Connection#prepareCall()
,
Crea un objeto CallableStatement para llamar a los procedimientos almacenados de la base de datos. El objeto CallableStatement proporciona métodos para configurar sus parámetros IN y OUT, y métodos para ejecutar la llamada a un procedimiento almacenado.
También puede pasar parámetros para la función. por ejemplo,
conn.prepareCall("{? = CALL total_cancellations(?)}");
cstmt.setInt(2, value);
pasará los valores a la función como parámetro de entrada.
¡Espero que esto ayude!