ss_beer Asked:2020-06-08 00:12:57 +0000 UTC2020-06-08 00:12:57 +0000 UTC 2020-06-08 00:12:57 +0000 UTC Oracle 视图自动更改 772 看一看 create or replace view temp as select * from table; 如果您在创建后查看视图代码,我们将看到*表属性名称的显式枚举。 因此,如果将新属性添加到表中,它将不会出现在视图中。如果删除该属性,视图中将出现错误。有解决办法吗?也许会刷新视图的指令? sql 1 个回答 Voted Best Answer Dmitriy 2020-06-08T04:51:58Z2020-06-08T04:51:58Z 没有这样的说明,如果有的话,它们不太可能有意义。 有一个“半自动”的解决方案。首先,在系统视图中, //ALL_DEPENDENCIES你可以看到你的表依赖于哪些对象,然后决定如何处理它们。例如,10 个视图访问正在更改的表,添加的字段将只需要三个。为了支持这样的功能,我们必须限制过于复杂的语法。DBA_DEPENDENCIESUSER_DEPENDENCIES 其次,在删除字段的情况下,您还可以在系统视图ALL_OBJECTS(及其兄弟DBA_OBJECTS和USER_OBJECTS)中检查对象的状态。如果STATUS 对象的字段包含INVALID,则表示删除该列已经破坏了某些内容。请注意,不仅视图可以依赖于表,几乎所有其他对象也可以。
没有这样的说明,如果有的话,它们不太可能有意义。
有一个“半自动”的解决方案。首先,在系统视图中, //
ALL_DEPENDENCIES你可以看到你的表依赖于哪些对象,然后决定如何处理它们。例如,10 个视图访问正在更改的表,添加的字段将只需要三个。为了支持这样的功能,我们必须限制过于复杂的语法。DBA_DEPENDENCIESUSER_DEPENDENCIES其次,在删除字段的情况下,您还可以在系统视图
ALL_OBJECTS(及其兄弟DBA_OBJECTS和USER_OBJECTS)中检查对象的状态。如果STATUS对象的字段包含INVALID,则表示删除该列已经破坏了某些内容。请注意,不仅视图可以依赖于表,几乎所有其他对象也可以。