sql >> Database >  >> RDS >> Oracle

Bel de pl/sql-functie in java?

Java biedt CallableStatements voor dergelijke doeleinden.

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

zal hetzelfde afdrukken als in de pl/sql. Volgens docs Connection#prepareCall() ,

Maakt een CallableStatement-object voor het aanroepen van opgeslagen databaseprocedures. Het object CallableStatement biedt methoden voor het instellen van de IN- en OUT-parameters en methoden voor het uitvoeren van de aanroep van een opgeslagen procedure.

U kunt ook parameters voor de functie doorgeven. bijvoorbeeld

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

zal de waarden doorgeven aan de functie als invoerparameter.

Ik hoop dat dit helpt!



  1. Hoe kan ik een PostgreSQL-trigger gebruiken om wijzigingen op te slaan (SQL-statements en rijwijzigingen)

  2. Vind niet-numerieke waarden in een kolom in SQL Server

  3. SQL Server DELETE – Een of meer rijen uit een tabel verwijderen met enigszins geavanceerde scenario's

  4. IDENT_CURRENT vs @@IDENTITY vs SCOPE_IDENTITY in SQL Server:wat is het verschil?