Java предоставя CallableStatements
за такива цели .
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);
ще отпечата същото, както правите в pl/sql. Съгласно документи Connection#prepareCall()
,
Създава обект CallableStatement за извикване на съхранени процедури на база данни. Обектът CallableStatement предоставя методи за настройка на неговите IN и OUT параметри и методи за изпълнение на извикването към съхранена процедура.
Можете също да предавате параметри за функцията. например ,
conn.prepareCall("{? = CALL total_cancellations(?)}");
cstmt.setInt(2, value);
ще предаде стойностите на функцията като входен параметър.
Надявам се това да помогне!