遇到了oracle中对象的编译问题,因为升级等状况可能导致某schema下的对象变为invalid,这时就要对这些对象重新编译。
查询invalid对象的方法为:
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;
按这种方法我对本机的invalid对象进行了查询。结果如下,有两个物化视图的状态为invalid。
但是是否所有新建的表、存储过程等都需要人为编译一下呢。我对scott下的对象做了查询。
其所有对象状态结果均为valid。这里面包括我新建的表,可见其不需要人为编译。