Fra dokumentation,
ALL_PROCEDURES viser alle funktioner og procedurer sammen med tilknyttede egenskaber. For eksempel angiver ALL_PROCEDURES, hvorvidt en funktion er pipelinet, parallel aktiveret eller en aggregatfunktion. Hvis en funktion er pipelinet eller en aggregeret funktion, identificeres den tilknyttede implementeringstype (hvis nogen) også.
Det afklarer ikke, om det vil angive en STÅENDE PROCEDURE og en procedure pakket ind i en PAKKE på samme måde eller betragter den det anderledes. Siden er procedure_name
ville ikke angive navnet på en selvstændig procedure som set i testcasen i spørgsmålet ovenfor.
PROCEDURE_NAME
kolonne vil kun have procedurenavnet for de procedurer, der er en del af en PACKAGE
. For STÅENDE PROCEDURER skal du bruge 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 kun få listen over procedurer ved at bruge procedure_name, hvis den er pakket ind i en pakke.
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 kunne du se procedurenavn som den faktiske procedure og objektnavn som pakkenavn.
Selvfølgelig ville vi for det meste i produktionssystemer have pakker og ikke selvstændige procedurer. Men mens vi tester og demoer, kompilerer og kører vi selvstændige procedurer. Så det er godt at vide, hvordan Oracle vedligeholder oplysningerne i *_PROCEDURES-visninger .