2013-08-28 22 views
1

如果我在Oracle中對錶進行了大量修改。有沒有一種方法可以獲得不再編譯的軟件包列表?查找不可編譯包的列表

我可以輕鬆地從我更改的表的列表中獲取軟件包列表,但是我不知道是否有可能獲取所有未編譯的內容。

回答

3

這是你如何能做到這

select 'alter '||decode(object_type,'PACKAGE BODY','PACKAGE',object_type)|| 
     ' '||object_name||' compile '||decode(object_type,'PACKAGE BODY','body;',';') 
    from user_objects 
where status = 'INVALID' 
+3

+1但是當且僅當你只是想重新編譯一切的無效,你可能會更好過使用'DBMS_UTILITY.COMPILE_SCHEMA(,假)'。 –