Từ tài liệu,
ALL_PROCEDURES liệt kê tất cả các hàm và thủ tục, cùng với các thuộc tính liên kết. Ví dụ:ALL_PROCEDURES cho biết lỗi không phải là một chức năng được kết nối, được kích hoạt song song hoặc một chức năng tổng hợp. Nếu một hàm là pipelined hoặc một hàm tổng hợp, thì kiểu triển khai liên kết (nếu có) cũng được xác định.
Nó không làm rõ liệu nó có liệt kê một THỦ TỤC CŨNG ĐỨNG hay không và một thủ tục được bao bọc trong một GÓI cùng một cách hay nó xem xét nó theo cách khác. Kể từ đó, procedure_name
sẽ không liệt kê tên của một thủ tục độc lập như đã thấy trong trường hợp thử nghiệm trong câu hỏi ở trên.
PROCEDURE_NAME
cột sẽ chỉ có tên thủ tục cho các thủ tục là một phần của PACKAGE
. Đối với các THỦ TỤC ĐÁNH BẰNG ĐỨNG, bạn cần sử dụng 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>
Bạn chỉ có thể lấy danh sách các thủ tục bằng tên procedure_name nếu nó được gói trong một gói.
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>
Bây giờ, bạn có thể thấy procedure_name là thủ tục thực tế và object_name là package_name.
Tất nhiên, hầu hết trong các hệ thống sản xuất, chúng tôi sẽ có các gói chứ không phải các thủ tục riêng lẻ. Tuy nhiên, trong khi thử nghiệm và trình diễn, chúng tôi biên dịch và chạy các thủ tục độc lập. Vì vậy, rất tốt nếu biết cách Oracle duy trì thông tin trong các chế độ xem * _PROCEDURES .