Tôi nghĩ rằng liệt kê từ DBA_OBJECTS có thể đã bỏ lỡ rất nhiều thủ tục: (Tôi đang trên Oracle 12c, đăng nhập như SYS)
select count(*) from dba_objects where object_type = 'PROCEDURE';
202
Nó thực sự nhìn không thể là toàn bộ cơ sở dữ liệu ORACLE có thể chỉ có 202 thủ tục.
Và truy vấn từ DBA_PROCEDURES:
select owner||'-'||object_name || '-'||procedure_name from
dba_procedures WHERE PROCEDURE_NAME IS NOT NULL;
26539 rows selected.
Bây giờ tập trung vào schema SYS, mà đi kèm mặc định cho tất cả các cơ sở dữ liệu (không phải chỉ có tôi):
Truy vấn trong các stored procedure ANONYMOUS (http://www.praetoriate.com/t_high_perform_calling_procedures.htm) thuộc SYS :
select owner||'-'||object_name || '-'||procedure_name from dba_procedures WHERE PROCEDURE_NAME IS NULL and owner = 'SYS';
994 rows selected.
Và lưu trữ thủ tục không nặc danh SYS của có 15K:
select owner||'-'||object_name || '-'||procedure_name from dba_procedures WHERE PROCEDURE_NAME IS NOT NULL and owner = 'SYS';
15408 rows
Nguồn
2017-01-25 01:16:33
Bạn muốn làm object_type trong ('PROCEDURE', 'FUNCTION', 'PACKAGE') để nhận tất cả mã nguồn có thể. –
Xin lỗi, tổng số Oracle noob ở đây. Tôi dường như không thể thấy chế độ xem/bảng đó. Điều đó có nghĩa là tôi đã đăng nhập với tư cách là người dùng sai? –
Bạn có thể không có các đặc quyền cần thiết để truy vấn các chế độ xem đó. Bạn có thể thử ALL_OBJECTS và ALL_SOURCE để thay thế. –