2009-11-30 32 views
32

Tôi đang so sánh ba lược đồ Oracle.Nhận danh sách tất cả các chức năng và thủ tục trong cơ sở dữ liệu Oracle

Tôi muốn có danh sách tất cả các chức năng và quy trình được sử dụng trong mỗi cơ sở dữ liệu. Điều này có thể thông qua một truy vấn không? (tốt nhất là bao gồm cả cờ cho dù chúng có biên dịch hay không)

Tốt nhất là nên có một truy vấn đơn với cờ cho biết chức năng/thủ tục có trong từng lược đồ hay không. Nhưng ngay cả khi bit đầu tiên sẽ tốt hơn là kiểm tra thủ công từng lược đồ.

Trả lời

74
SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE IN ('FUNCTION','PROCEDURE','PACKAGE') 

Cột STATUS cho bạn biết liệu đối tượng có HỢP LỆ hoặc KHÔNG HỢP LỆ. Nếu nó không hợp lệ, bạn phải thử biên dịch lại, ORACLE không thể cho bạn biết nếu nó sẽ hoạt động trước đó.

+0

[''TABLE''] (https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:941629680330#3455235608260) Ai đó có thể đưa ra gợi ý như thế nào thế nào để xóa các chức năng/thủ tục/gói? – Bitterblue

+0

'hàm thả xxx',' thả thủ tục xyz', 'thả gói foobar' –

+0

Ai đó đã đề xuất chỉnh sửa cho câu trả lời của tôi, để câu lệnh' SELECT' chỉ chọn 'OBJECT_NAME' thay vì' * '. Dù sao, chỉnh sửa này đã bị từ chối (bởi những người đánh giá khác với tôi); IMO, ít nhất, 'OBJECT_NAME, OBJECT_TYPE, STATUS' sẽ được chọn để có được đầu ra hữu ích. Điều đó nói rằng, 'SELECT *' không bị tổn thương trong bối cảnh này. –

4

Thực hiện mô tả trên dba_arguments, dba_errors, dba_procedures, dba_objects, dba_source, dba_object_size. Mỗi trong số này có một phần của hình ảnh để xem các thủ tục và chức năng. .

Ngoài ra object_type trong dba_objects đối với các gói là 'GÓI' cho định nghĩa và 'PACKAGE BODY" cho cơ thể

Nếu bạn đang so sánh schemas trên cơ sở dữ liệu tương tự sau đó thử:

select * from dba_objects 
    where schema_name = 'ASCHEMA' 
    and object_type in ('PROCEDURE', 'PACKAGE', 'FUNCTION', 'PACKAGE BODY') 
minus 
select * from dba_objects 
where schema_name = 'BSCHEMA' 
    and object_type in ('PROCEDURE', 'PACKAGE', 'FUNCTION', 'PACKAGE BODY') 

và chuyển đổi các đơn đặt hàng của ASCHEMA và BSCHEMA

Nếu bạn cũng cần xem xét trình kích hoạt và so sánh các công cụ khác giữa các lược đồ, bạn nên xem Article on Ask Tom about comparing schemas

Các vấn đề liên quan