Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Aufruf pl/sql-Funktion in Java?

Java bietet CallableStatements für solche Zwecke .

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);

druckt dasselbe wie in pl/sql. Gemäß docs Connection#prepareCall() ,

Erstellt ein CallableStatement-Objekt zum Aufrufen von gespeicherten Datenbankprozeduren. Das CallableStatement-Objekt bietet Methoden zum Einrichten seiner IN- und OUT-Parameter sowie Methoden zum Ausführen des Aufrufs einer gespeicherten Prozedur.

Sie können der Funktion auch Parameter übergeben. zum Beispiel ,

conn.prepareCall("{? = CALL total_cancellations(?)}");
cstmt.setInt(2, value);

übergibt die Werte als Eingabeparameter an die Funktion.

Hoffe das hilft!