如何知道创建的视图是否有效

sta*_*k92 1 oracle sqlplus

我是数据库新手。

可以说我已经用力创建了一个视图。

那么如何知道创建的视图是否无效呢?

我的意思是,是否有任何查询可以让我了解视图的有效性状态?

谢谢。

Mul*_*ync 5

您可以使用 Oracle 字典视图user_objects:

\n\n
select object_name, status from user_objects \nwhere object_type = \'VIEW\' and object_name = \'YOUR_VIEW\';\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果视图所基于的表因任何原因发生更改,您可能必须重新编译视图。例如,如果表\xe2\x80\x99s 结构发生更改,例如更改列\xe2\x80\x99s 数据类型,或者可能从表中完全删除一列 - 使用的列\如果视图\xe2\x80\x94,那么它可能会将视图的状态更改为“INVALID”。

\n\n

另请注意,“所有对象”视图有多个版本:

\n\n

USER_OBJECTS- 当前用户拥有的所有对象;
\n ALL_OBJECTS- 当前用户拥有任何权限的所有对象;
\n DBA_OBJECTS- 所有数据库对象(您需要特殊权限才能访问此视图)

\n\n

ALL_ 和 DBA_ 版本有一个附加列,OWNER其中包含对象的所有者。

\n\n

这些“命名规则”适用于不同的 Oracle 字典视图:全部_ | DBA_] [索引 | 表格| 观点 | ETC]

\n