查找无效对象
你可以根据这个查询结果来判断使用下面的哪种方法来编译你数据库里面的无效对象.
COLUMN object_name FORMAT A30 SELECT owner, object_type, object_name, STATUS FROM dba_objects WHERE STATUS = 'INVALID' ORDER BY owner, object_type, object_name;
1.手动编译
如果无效对象的数量很少,那么你可以逐个编译这些对象.
如:
ALTER PACKAGE my_package COMPILE; ALTER PACKAGE my_package COMPILE BODY; ALTER PROCEDURE my_procedure COMPILE; ALTER FUNCTION my_function COMPILE; ALTER TRIGGER my_trigger COMPILE; ALTER VIEW my_view COMPILE;
你也可以用DBMS_DDL包来编译(但只用于PL/SQL对象,所以你不用它来编译视图等):
EXEC DBMS_DDL('PACKAGE'