代码之家  ›  专栏  ›  技术社区  ›  Ori Marko

Oracle-强制查看选项在执行后未显示在视图上

  •  1
  • Ori Marko  · 技术社区  · 6 年前

    我们创建了一个用于处理复杂SQL的视图,但在使用 FORCE

    create or replace FORCE view testview as
    select 1
    from dual;
    

    FORCE 在以后查看视图时删除

    create or replace view testview as
    select 1
    from dual;
    

    如果视图定义包含任何约束,请创建视图。。。如果基表不存在或引用的对象类型不存在,FORCE将失败。创建视图。。。如果视图定义指定了不存在的约束,则强制也将失败。

    正在使用 武力 选项仅在执行时,没有运行时效果?它是否仅用于强制覆盖以前的视图(即使出现错误)?

    1 回复  |  直到 6 年前
        1
  •  2
  •   APC    6 年前

    使用强制选项是否仅在执行时使用,并且没有运行时效果?

    对如果view语句无效——比如说有输入错误,FROM子句中的表名拼写错误——通常Oracle不会创建该视图。通过使用FORCE关键字创建视图,但具有 'INVALID' 地位这在某些情况下很有用,例如,我们有一个构建工具,如果语句失败,它将停止运行,但我们希望整个构建完成,然后整理出任何不一致的地方。

    不,我们可以选择使用武力,即使在这一刻之前不存在这种观点。这种用法与使用依赖项更改类型时使用强制略有不同。我们始终可以创建或替换视图。