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

membuat tampilan parameter di oracle11g

Metode konteks dijelaskan di sini:http://docs.Oracle.com/cd/B28359_01/network.111/b28531/app_context.htm

misalnya (contoh diadaptasi dari tautan di atas)

CREATE CONTEXT dates_ctx USING set_dates_ctx_pkg;

CREATE OR REPLACE PACKAGE set_dates_ctx_pkg IS 
  PROCEDURE set(d1 in date, d2 in date); 
END; 
/

CREATE OR REPLACE PACKAGE BODY set_dates_ctx_pkg IS
  PROCEDURE set(d1 in date, d2 in date) IS 
  BEGIN 
    DBMS_SESSION.SET_CONTEXT('dates_ctx', 'd1', TO_CHAR(d1,'DD-MON-YYYY'));
    DBMS_SESSION.SET_CONTEXT('dates_ctx', 'd2', TO_CHAR(d2,'DD-MON-YYYY'));
  END;
END;
/

Kemudian, atur tanggal di aplikasi Anda dengan:

BEGIN set_dates_ctx_pkg.set(mydate1, mydate2); END;
/

Kemudian, kueri parameter dengan:

SELECT bla FROM mytable
WHERE mydate
  BETWEEN TO_DATE(
            SYS_CONTEXT('dates_ctx', 'd1')
          ,'DD-MON-YYYY')
      AND TO_DATE(
            SYS_CONTEXT('dates_ctx', 'd2')
          ,'DD-MON-YYYY');

Keuntungan dari pendekatan ini adalah sangat ramah permintaan; ini tidak melibatkan DDL atau DML saat runtime, dan oleh karena itu tidak ada transaksi yang perlu dikhawatirkan; dan ini sangat cepat karena tidak melibatkan SQL - sakelar konteks PL/SQL.

Atau:

Jika metode konteks dan metode variabel paket John tidak memungkinkan untuk Anda, metode lainnya adalah memasukkan parameter ke dalam tabel (mis. tabel sementara global, jika Anda menjalankan kueri di sesi yang sama), lalu gabung ke tabel itu dari tampilan. Kelemahannya adalah Anda sekarang harus memastikan bahwa Anda menjalankan beberapa DML untuk memasukkan parameter kapan pun Anda ingin menjalankan kueri.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Atur Ulang Urutan menurut tahun bukan berdasarkan nilai min atau maks

  2. Cloud Native dan DevSecOps dalam Skala Besar dengan Capgemini Agile Innovation Platform dan Oracle Cloud

  3. Pengantar Kursor Ref PL/SQL Di Database Oracle

  4. Memfilter Log Peringatan di EM13c

  5. OracleParameter dan Klausa IN