Oracle SQL 开发人员将我的工作视图标记为损坏
Oracle SQL Developer flag my working views as broken
谁能告诉我为什么我的 Oracle SQL 开发人员在我的视图实际工作时将其标记为已损坏?
不只是1个视图,10个视图都有同样的问题,它们都是在不同的时间创建的,带有子查询或连接到多个表并且总是工作正常。
提前致谢!
可能视图因引用对象的更改而无效。和storedPL/SQL一样,下次使用的时候会重新编译,到时候再次生效。例如:
SQL> create table demo (id integer);
Table created
SQL> create or replace view v1 as select id from demo;
View created
SQL> select o.status from user_objects o where object_type = 'VIEW' and object_name = 'V1';
STATUS
-------
VALID
SQL> alter table demo modify id varchar2(10);
Table altered
SQL> select o.status from user_objects o where object_type = 'VIEW' and object_name = 'V1';
STATUS
-------
INVALID
SQL> select * from v1;
ID
----------
SQL> select o.status from user_objects o where object_type = 'VIEW' and object_name = 'V1';
STATUS
-------
VALID
谁能告诉我为什么我的 Oracle SQL 开发人员在我的视图实际工作时将其标记为已损坏?
不只是1个视图,10个视图都有同样的问题,它们都是在不同的时间创建的,带有子查询或连接到多个表并且总是工作正常。
提前致谢!
可能视图因引用对象的更改而无效。和storedPL/SQL一样,下次使用的时候会重新编译,到时候再次生效。例如:
SQL> create table demo (id integer);
Table created
SQL> create or replace view v1 as select id from demo;
View created
SQL> select o.status from user_objects o where object_type = 'VIEW' and object_name = 'V1';
STATUS
-------
VALID
SQL> alter table demo modify id varchar2(10);
Table altered
SQL> select o.status from user_objects o where object_type = 'VIEW' and object_name = 'V1';
STATUS
-------
INVALID
SQL> select * from v1;
ID
----------
SQL> select o.status from user_objects o where object_type = 'VIEW' and object_name = 'V1';
STATUS
-------
VALID