sql >> Base de Datos >  >> RDS >> Oracle

¿Llamar a la función pl/sql en java?

Java proporciona CallableStatements para tales fines.

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

imprimirá lo mismo que lo hace en pl/sql. Según los documentos Connection#prepareCall() ,

Crea un objeto CallableStatement para llamar a los procedimientos almacenados de la base de datos. El objeto CallableStatement proporciona métodos para configurar sus parámetros IN y OUT, y métodos para ejecutar la llamada a un procedimiento almacenado.

También puede pasar parámetros para la función. por ejemplo,

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

pasará los valores a la función como parámetro de entrada.

¡Espero que esto ayude!