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

ALL_PROCEDURE tampilan tidak menampilkan PROCEDURE_NAME

Dari dokumentasi,

ALL_PROCEDURES mencantumkan semua fungsi dan prosedur, bersama dengan properti terkait. Misalnya, ALL_PROCEDURES menunjukkan apakah suatu fungsi disalurkan, diaktifkan paralel, atau fungsi agregat. Jika suatu fungsi disalurkan atau fungsi agregat, jenis implementasi terkait (jika ada) juga diidentifikasi.

Tidak dijelaskan apakah akan mencantumkan PROSEDUR BERDIRI SENDIRI dan prosedur yang dikemas dalam PAKET dengan cara yang sama atau menganggapnya berbeda. Karena, procedure_name tidak akan mencantumkan nama prosedur yang berdiri sendiri seperti yang terlihat pada kasus uji pada pertanyaan di atas.

PROCEDURE_NAME kolom hanya akan memiliki nama prosedur untuk prosedur yang merupakan bagian dari PACKAGE . Untuk PROSEDUR BERDIRI SENDIRI, Anda perlu menggunakan OBJECT_NAME .

SQL> show user
USER is "LALIT"
SQL> CREATE OR REPLACE
  2  PROCEDURE new_proc
  3  AS
  4  BEGIN
  5    NULL;
  6  END;
  7  /

Procedure created.

SQL>
SQL> SELECT owner,
  2    object_name,
  3    procedure_name,
  4    object_type
  5  FROM all_procedures
  6  WHERE owner='LALIT'
  7  AND object_name='NEW_PROC';

OWNER OBJECT_NAME     PROCEDURE_NAME  OBJECT_TYPE
----- --------------- --------------- ---------------
LALIT NEW_PROC                        PROCEDURE

SQL>

Anda bisa mendapatkan daftar prosedur menggunakan procedure_name hanya jika dibungkus dalam sebuah paket.

SQL> -- package
SQL> CREATE OR REPLACE
  2  PACKAGE new_pack
  3  IS
  4    PROCEDURE new_proc;
  5  END new_pack;
  6  /

Package created.

SQL>
SQL> -- package body with a procedure
SQL> CREATE OR REPLACE
  2  PACKAGE BODY new_pack
  3  IS
  4  PROCEDURE new_proc
  5  IS
  6  BEGIN
  7    NULL;
  8  END;
  9  END new_pack;
 10  /

Package body created.

SQL> SELECT owner,
  2    object_name,
  3    procedure_name,
  4    object_type
  5  FROM all_procedures
  6  WHERE owner='LALIT'
  7  AND procedure_name='NEW_PROC';

OWNER OBJECT_NAME     PROCEDURE_NAME  OBJECT_TYPE
----- --------------- --------------- -----------
LALIT NEW_PACK        NEW_PROC        PACKAGE

SQL>

Sekarang Anda dapat melihat nama_prosedur sebagai prosedur sebenarnya, dan nama_objek sebagai nama_paket.

Tentu saja, kebanyakan dalam sistem produksi kami akan memiliki paket, dan bukan prosedur yang berdiri sendiri. Namun, saat pengujian dan demo, kami mengkompilasi dan menjalankan prosedur yang berdiri sendiri. Jadi, ada baiknya mengetahui bagaimana Oracle menyimpan informasi dalam *_PROCEDURES tampilan .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. USERT ke dalam tabel dengan nama tabel dinamis

  2. Oracle Cloud Breakdown – Biaya Hosting Database di OCI

  3. Oracle Unicode Spooling

  4. Mengikat Parameter ke Oracle Dynamic SQL

  5. Apakah referensi melingkar dapat diterima dalam database?