author:skate
time:2008/07/23
现象:oracle数据库视图无效
查询数据库invalid的对象:
SELECT COUNT(DISTINCT ALO.OBJECT_NAME)
FROM ALL_OBJECTS ALO
WHERE ALO.OWNER = USER
AND ALO.OWNER NOT IN ('SYS','SYSTEM')
AND ALO.OBJECT_NAME NOT IN ('PAK_ALL_COMPILE')
AND ALO.OBJECT_TYPE IN ('FUNCTION','PROCEDURE','VIEW','PACKAGE','PACKAGE BODY','TRIGGER')
AND ALO.STATUS = 'INVALID';
解决思路:视图是建立在表的基础上,视图无效只有可能是表的物理结构改变了,当视图涉及到这个表
的时候,对应的视图就会无效,这时候需要重新compile
编译invalid的方法:用pl/sql delveloper工具或用 “编译invalid_object.sql”脚本。
现象原因:由于一个朋友在部署的时候,运行了一个sql文件以致增加一个表的列
-----end-----