728x90
반응형
LIST

Object 들 중에 STATUS 가 INVALID 인 것들을 재컴파일 해주는 과정이다. 

 

 DECLARE
    n_rowcount PLS_INTEGER := 0;
    n_rowcount2 PLS_INTEGER := 0;


    CURSOR cur_objects
    IS
        SELECT *
            FROM SYS.USER_OBJECTS
            WHERE  STATUS = 'INVALID'
AND OBJECT_TYPE IN ('PROCEDURE','FUNCTION','PACKAGE','PACKAGE BODY');
BEGIN
    LOOP
        n_rowcount2 := n_rowcount;
        n_rowcount := 0;
        FOR rec_objects IN cur_objects
        LOOP
            DBMS_DDL.ALTER_COMPILE(rec_objects.object_type,NULL,rec_objects.object_name);
            n_rowcount := cur_objects%ROWCOUNT;
        END LOOP;


        IF n_rowcount = 0 OR (n_rowcount = n_rowcount2) THEN
            EXIT;
        END IF;
    END LOOP;
END;
/

 

728x90
반응형
LIST

+ Recent posts