Java fornece
CallableStatements
para tais fins. 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á o mesmo que você faz no pl/sql. Conforme documentos
Connection#prepareCall()
,
Cria um objeto CallableStatement para chamar procedimentos armazenados do banco de dados. O objeto CallableStatement fornece métodos para configurar seus parâmetros IN e OUT e métodos para executar a chamada para um procedimento armazenado.
Você também pode passar parâmetros para a função. por ex,
conn.prepareCall("{? = CALL total_cancellations(?)}");
cstmt.setInt(2, value);
passará os valores para a função como parâmetro de entrada.
Espero que isto ajude !