Oracle
 sql >> Database >  >> RDS >> Oracle

Chiama la funzione pl/sql in Java?

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!