Java giver CallableStatements
til sådanne formål .
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);
vil udskrive det samme som du gør i pl/sql. I henhold til docs Connection#prepareCall()
,
Opretter et CallableStatement-objekt til at kalde databaselagrede procedurer. CallableStatement-objektet giver metoder til opsætning af dets IN- og OUT-parametre og metoder til at udføre opkaldet til en lagret procedure.
Du kan også sende parametre til funktionen. f.eks.
conn.prepareCall("{? = CALL total_cancellations(?)}");
cstmt.setInt(2, value);
vil sende værdierne til funktionen som inputparameter.
Håber dette hjælper!