Oracle
 sql >> Base de données >  >> RDS >> Oracle

Appeler la fonction pl/sql en Java ?

Java fournit CallableStatements à de telles 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);

imprimera la même chose que vous faites dans le pl/sql. Selon la documentation Connection#prepareCall() ,

Crée un objet CallableStatement pour appeler les procédures stockées de la base de données. L'objet CallableStatement fournit des méthodes pour configurer ses paramètres IN et OUT, et des méthodes pour exécuter l'appel à une procédure stockée.

Vous pouvez également passer des paramètres pour la fonction . par exemple ,

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

transmettra les valeurs à la fonction en tant que paramètre d'entrée.

J'espère que cela vous aidera !