Oracle 失效对象重新编译
2017-08-15数据库站长9272°c
A+ A-DECLARE v_objname user_objects.object_name%TYPE; v_objtype user_objects.object_type%TYPE; CURSOR cur IS SELECT object_name,object_type FROM USER_OBJECTS WHERE status = 'INVALID' AND object_type IN ('FUNCTION','JAVA SOURCE','JAVA CLASS','PROCEDURE','PACKAGE','TRIGGER','VIEW'); BEGIN OPEN cur; LOOP FETCH cur into v_objname, v_objtype; EXIT WHEN cur%NOTFOUND; BEGIN EXECUTE Immediate 'alter ' || v_objtype || ' ' || v_objname||' Compile'; dbms_output.put_line('编译' || v_objtype || ' ' || v_objname || '()成功'); EXCEPTION WHEN OTHERS THEN dbms_output.put_line('编译' || v_objtype ||' ' || v_objname || '()失败.' || SQLERRM); END; END LOOP; CLOSE cur; END;