시스템을 운영하다보면 여러 스케쥴러나 JOB을 설정하는 경우가 많은데
종종 정상적인 수행이 되지 않았을때 오브젝트가 비활성화 된 상태로 존재 하는 경우가 있습니다.
FUNCTION, 프로시져 그리고 PACKAGE 등과 같은 오브젝트에 대한 비활성화 대상을 조회하고
SQL을 활용한 활성화 구문을 생성하고자 합니다
INVALID 상태의 오브젝트 조회
SELECT OBJECT_NAME, OBJECT_TYPE, STATUS
FROM USER_OBJECTS
WHERE STATUS = 'INVALID'
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS
FROM DBA_OBJECTS -- ALL_OBJECTS
WHERE STATUS = 'INVALID'
활성화(VALID) 구문 조회 SQL
SELECT DISTINCT 'ALTER '||OBJECT_TYPE||' '||OWNER||'.'|| OBJECT_NAME || ' COMPILE ;' AS COMPILE_SQL
FROM DBA_OBJECTS
WHERE STATUS = 'INVALID'
AND OBJECT_TYPE NOT IN ( 'PACKAGE BODY','SYNONYM')
UNION
SELECT DISTINCT 'ALTER PACKAGE ' ||OWNER||'.'|| OBJECT_NAME || ' COMPILE BODY;' AS COMPILE_SQL
FROM DBA_OBJECTS
WHERE STATUS = 'INVALID'
AND OBJECT_TYPE IN ( 'PACKAGE BODY') ;
ALTER 오브젝트 타입 오브젝트명 COMPILE
Orange, Toad, PL/SQL Developer와 같은 Tool에서는 바로 조회 및 활성화가 가능합니다
'너알나알 > 오라클[Oracle]' 카테고리의 다른 글
[오라클]테이블 Lock 조회+Session Kill (0) | 2024.03.12 |
---|---|
[오라클]테이블+FUNCTION(오브젝트) 권한 부여 (0) | 2024.03.11 |
[오라클]프로시져+트리거+FUNCTION 내 STRING 찾기 (0) | 2024.03.11 |
[오라클]DDL 스크립트 조회하기 (0) | 2024.03.11 |
[오라클]계정 생성 및 권한 부여 (0) | 2024.03.10 |
댓글