Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Chamar a função pl/sql em java?


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 !