检查是否使用FORCE选项创建了视图。

问题描述 投票:1回答:1

如何在Oracle中检查是否使用FORCE选项创建了视图?

在视图中 sys.all_views 这个选项没有列,查询文本本身也不包含CREATE部分。

oracle view
1个回答
1
投票

我可以确认@a_horse_withno_name的建议。FORCE 在数据字典中没有存储,而且... dbms_metadata.get_ddl 编造,可能TOAD也是如此。

CREATE TABLE t (i NUMBER);
CREATE FORCE   VIEW f AS SELECT * FROM t;
CREATE NOFORCE VIEW n AS SELECT * FROM t;

USER_VIEWS, USER_OBJECTS, SYS.VIEW$SYS.OBJ$ 两种观点是相同的。而 dbms_metadata.get_ddl 补充 FORCE 无论如何,。

SELECT dbms_metadata.get_ddl('VIEW', view_name) FROM user_views;

CREATE OR REPLACE FORCE EDITIONABLE VIEW "SO"."F" ("I") AS 
SELECT "I" FROM t"

CREATE OR REPLACE FORCE EDITIONABLE VIEW "SO"."N" ("I") AS 
SELECT "I" FROM t"
© www.soinside.com 2019 - 2024. All rights reserved.