在日常資料庫維護過程中,我們需要及時檢查資料庫中存在的失效對象資訊,對於存在異常的對象需要重新編譯,各種物件類型可參見如下編譯方法:
檢查產生無效對象的名稱,並存放object.lst檔案中
pool objects.lst
set pagesize500
set linesize 100
select substr(comp_name,1,40) comp_name, status, substr(version,1,10) version
from dba_registry
order by comp_name;
select substr(object_name,1,40) object_name,substr(owner,1,15) owner,object_type
from dba_objects
where status='INVALID' order by owner,object_type;
select owner,object_type,count(*)
from dba_objects
where status='INVALID'
group by owner,object_type order by owner,object_type ;
spool off
產生後關閉sqlplus的spool記錄
各個對象的編譯方法分別如下:
alter package <schema name>.<package_name> compile;
alter package <schema name>.<package_name> compile body;
alter view <schema name>.<view_name> compile;
alter trigger <schema).<trigger_name> compile;
更多Oracle相關資訊見Oracle 專題頁面 http://www.bkjia.com/topicnews.aspx?tid=12