출처 : https://kr.forums.oracle.com/forums/thread.jspa?messageID=1528813&
SAP같은 erp시스템의 경우에는 segment가 3만개나 할 정도로 복잡한 시스템입니다.
invalid object를 하나를 해결하면 다른 object가 invalid되곤 하기도 합니다. 그래서 참 해결하기가 어렵지요.
대부분 테이블이나 프로시저등이 변경되면 invalid object가 생깁니다.
하지만 invalid object를 recompie할 경우에 또다시 reference 관계가 있는 다른 object가 invalid되곤 합니다.
이러한 복잡한 시스템일 경우에는 어쩔 수 없이 utlrp.sql을 수행해서 재컴파일 하는 방법이 가장 편합니다.
물론 invalid object에 대해서 기존에 invalid된 것이 valid로 하더라도 서비스에 문제가 없어야겠지요.
만약 utlrp.sql로 수행이 안될 경우에는 여러번 수행하면 재컴파일 됩니다.
SQL> @?/rdbms/admin/utlrp.sql
INVALID OBJECT에 대해서 대해서 재컴파일 하는 스크립트는 아래를 수행해서 재컴파일 할 수 있습니다.
--------------------------------------------------------------------------------
## invalidobject_recompile.sql
set heading off
set feedback off
set pages 1000
set verify off
spool allcompile.sql
SELECT 'alter '||DECODE(object_type,'PACKAGE BODY',
'PACKAGE',object_type)||' '||owner||'.'||object_name||
'compile'||
DECODE(object_type,'PACKAGE BODY',' body;',';')
FROM dba_objects
WHERE object_type in
('VIEW','FUNCTION','TRIGGER','PROCEDURE','PACKAGE',
'PACKAGE BODY')
AND status='INVALID'
ORDER BY owner,decode
(object_type,'VIEW','A','FUNCTION','B',
'TRIGGER','C','PROCEDURE','D',
'PACKAGE','E','PACKAGE BODY','F')
,object_name
/
spool off
글 수정:
민천사 (민연홍)
'::: DB ::: > Oracle' 카테고리의 다른 글
DataPump Export/Import Generate Messages "The Value (30) Of Maxtrans Parameter Ignored" in Alert Log (0) | 2011.11.22 |
---|---|
ORACLE 8I SYSTEM EVENT TRIGGER (ORACLE 8.1.6) (0) | 2011.11.17 |
Errors ORA-31693 ORA-29913 ORA-29400 ORA-26065 During DataPump Import (0) | 2011.11.07 |
IMPDP Fails With ORA-39776 And ORA-00600 (0) | 2011.11.07 |
Oracle 10g vs 9i CONNECT, RESOURCE 에 부여된 권한 변화 (0) | 2011.10.27 |