sql >> Database teknologi >  >> RDS >> Oracle

Kalde pl/sql funktion i java?

Java giver CallableStatements til sådanne formål .

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

vil udskrive det samme som du gør i pl/sql. I henhold til docs Connection#prepareCall() ,

Opretter et CallableStatement-objekt til at kalde databaselagrede procedurer. CallableStatement-objektet giver metoder til opsætning af dets IN- og OUT-parametre og metoder til at udføre opkaldet til en lagret procedure.

Du kan også sende parametre til funktionen. f.eks.

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

vil sende værdierne til funktionen som inputparameter.

Håber dette hjælper!



  1. Tæl antallet af forekomster af en streng i et VARCHAR-felt?

  2. Oracle SQL - Sum og grupper data efter uge

  3. Hvordan timeofday() virker i PostgreSQL

  4. En SaaS abonnementsdatamodel