Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Panggilan prosedur tersimpan Java dalam program java

Untuk mengembalikan nilai, Anda memerlukannya sebagai fungsi, bukan prosedur:

  public static String getBreweryInfo (int Raz_ID) 
  throws SQLException 
  { 
    String sql = 
      "SELECT Nosaukums FROM Alus_razotaji WHERE ID = ?";//vaicajums
    try {
      Connection conn = DriverManager.getConnection("jdbc:default:connection:");
      PreparedStatement apstmt = conn.prepareStatement(sql);
      apstmt.setInt(1, Raz_ID); 
      ResultSet rset = apstmt.executeQuery();// SQL vaicājuma izpildīšana

      if (rset.next()) {
          return rset.getString(1);
      } 
    }
    catch (SQLException e) {
      System.err.println(e.getMessage()); //Kļūdu izvadīsana
    } 
    finally {
      rset.close();
      apstmt.close(); //Savienojuma aizvēršana
    } 
  }

Maka paket Anda menjadi:

CREATE OR REPLACE PACKAGE BODY BeerBeer AS
  FUNCTION getBreweryInfo(Raz_ID number) RETURN varchar2 AS Language Java
  NAME 'BeerBeer.getBreweryInfo(int) return java.lang.String';
END BeerBeer;

Dan Anda menyebutnya seperti:

        String SQL = "{CALL ? = BeerBeer.getBreweryInfo (?)}";
        stmt = conn.prepareCall(SQL);
        int Raz_ID = 4;
        stmt.registerOutParameter(1, java.sql.Types.VARCHAR);
        stmt.setInt(2, Raz_ID);
        System.out.println("Izpildam JAVA glabajamo proceduru ...");
        // Vaicājuma izpilde
        stmt.execute();
        //Izgustam Alus_razotaja nosaukumu ar getXXX metodi.
        String Razotajs = stmt.getString(1);

Perhatikan bahwa parameter out sekarang menjadi indeks 1 karena merupakan pengembalian dari fungsi, jadi nilai yang Anda masukkan sekarang menjadi indeks 2. Tentu saja semua belum teruji...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Peningkatan otomatis di Oracle ke tabel yang sudah dibuat

  2. Cara Mendapatkan Hari Terakhir Bulan Ini di Oracle

  3. Oracle SQL - Jumlahkan dan kelompokkan data berdasarkan minggu

  4. Bagaimana Memanggil Fungsi Oracle dengan Python?

  5. ORA-01882:wilayah zona waktu tidak ditemukan