// Programm 2-5b: BSP_ROOT/meinewebapp/WEB-INF/classes/relsql/SimpleStoredProcedure.java
import java.sql.*;
import oracle.jdbc.driver.*;

public class SimpleStoredProcedure {
  public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection c = DriverManager.getConnection(
                 "jdbc:oracle:thin:@p30:1521:jdbcbuch", "system", "manager");
    Statement s = c.createStatement();
    String sproc = "CREATE OR REPLACE PROCEDURE Zaehle " +
                   "(aus OUT INTEGER) IS " +
                   "BEGIN " + 
                   "SELECT Count(*) INTO aus FROM Kurse; " +
                   "END;";
    s.execute(sproc);               // Prozedur speichern
    CallableStatement cs = c.prepareCall("{call Zaehle(?)}");
    cs.registerOutParameter(1, Types.INTEGER);
    cs.execute();                   // Prozedur ausführen
    System.out.println("Kurse: " + cs.getInt(1) + " Saetze");
  }
}