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

Apakah ada cara untuk mengakses prosedur plsql pribadi untuk tujuan pengujian?

Ada cara untuk melakukan ini, asalkan Anda menggunakan 10g atau lebih tinggi. Ini disebut Kompilasi Bersyarat. Ini adalah fitur yang sangat rapi yang menyediakan sintaks khusus sehingga kami dapat mengubah kode PL/SQL kami pada waktu kompilasi.

Kebetulan saya telah menggunakan fitur ini secara tepat untuk mengekspos paket pribadi dalam spesifikasi sehingga saya dapat menjalankan tes UTPLSQL terhadapnya.

Berikut adalah sintaks khusus:

create or replace package my_pkg
as

    $IF $$dev_env_test $THEN

    PROCEDURE private_proc;

    $END

    FUNCTION public_function return date;

end my_pkg;
/

Variabel dengan tanda dolar ganda itu adalah bendera Kompilasi Bersyarat.

Jika saya menjelaskan paket kami hanya dapat melihat paket publik:

SQL> desc my_pkg
FUNCTION PUBLIC_FUNCTION RETURNS DATE

SQL>

Sekarang saya mengatur flag kondisional dan mengkompilasi ulang paket, dan seolah-olah ajaib ...

SQL> alter session set plsql_ccflags='dev_env_test:true'
  2  /

Session altered.

SQL> alter package my_pkg compile
  2  /

Package altered.

SQL> desc my_pkg
PROCEDURE PRIVATE_PROC
FUNCTION PUBLIC_FUNCTION RETURNS DATE

SQL>

Memprivatisasi fungsi semudah yang Anda pikirkan:

SQL> alter session set plsql_ccflags='dev_env_test:false'
  2  /

Session altered.

SQL> alter package my_pkg compile
  2  /

Package altered.

SQL> desc my_pkg
FUNCTION PUBLIC_FUNCTION RETURNS DATE

SQL>

Kita dapat melakukan lebih banyak lagi dengan kompilasi bersyarat. Itu tercakup dalam dokumen. Cari tahu lebih lanjut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konversi stempel waktu unix ke Tanggal dan DateTime - SQL/ORACLE

  2. REMAINDER() Fungsi di Oracle

  3. Masalah kueri SqlPlus (Spesifikasi Paket dan Isi)

  4. Jumlah atau jenis argumen yang salah dalam panggilan ke prosedur dengan menggunakan zxJDBC

  5. Pelajari Tentang Paket DBMS_OUTPUT di Oracle