Från dokumentation,
ALL_PROCEDURES listar alla funktioner och procedurer, tillsammans med tillhörande egenskaper. Till exempel anger ALL_PROCEDURES om en funktion är pipelined, parallellaktiverad eller en aggregatfunktion. Om en funktion är pipelined eller en aggregerad funktion, identifieras också den associerade implementeringstypen (om någon).
Det klargör inte om det skulle lista en STÅENDE PROCEDUR och en procedur insvept i ett PAKET på samma sätt eller anser den det annorlunda. Sedan, procedure_name
skulle inte lista namnet på en fristående procedur som framgår av testfallet i frågan ovan.
PROCEDURE_NAME
kolumnen kommer bara att ha procedurnamnet för de procedurer som är en del av ett PACKAGE
. För STANDALONE PROCEDURER måste du använda 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>
Du kan bara få listan över procedurer med hjälp av procedure_name om den är inslagen i ett 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>
Nu kan du se proceduren_namn som den faktiska proceduren och objektnamn som paketnamn.
Naturligtvis, mestadels i produktionssystem skulle vi ha paket, och inte fristående procedurer. Men medan vi testar och demos kompilerar och kör vi fristående procedurer. Så det är bra att veta hur Oracle underhåller informationen i *_PROCEDURES-vyer .