【问题标题】:change fields in materialized view - oracle在物化视图中更改字段 - oracle
【发布时间】:2023-03-08 11:46:02
【问题描述】:

晚安,

我有一个有效的物化视图,我将添加 15 个左连接,类似于下面示例行中的左连接,有没有办法编辑它并隐藏 rowid?,如果我用主键替换 rowid,我可以省略它们吗?

因为我必须添加 15 个额外的 rowid,这在视觉上是不切实际的。有没有办法让它只显示我想要的字段而不是 rowid,

我还能如何将其更改为没有不必要的列,有没有一种方法可以处理增量负载而无需执行所有复杂的存储过程? 这种方式对于处理增量负载非常简单,物化视图必须是增量的(刷新快)

非常感谢。 问候。

create materialized view vm_prueba2

refresh fast on demand

with rowid as

select 
   o.rowid o_rowid,
   c.rowid c_rowid,
   e.rowid e_rowid,
   ordenid,
   o.empleadoid,
   o.clienteid,
   fechaorden,
   descuento,
   nvl(c.desccripcion,'') as ddesc,
   e.desccripcion

from ordenes o, tabla_hija c, tabla_hija e

where
 
  ( o.clienteid=c.valor(+) and c.id_tabla=1 or c.valor is null ) and
   ( o.empleadoid=e.valor(+) and e.id_tabla=2 or e.valor is null )

【问题讨论】:

    标签: oracle oracle11g oracle10g oracle-sqldeveloper


    【解决方案1】:
    • 创建一个物化视图,包含所有rowids
    • 在该物化视图的顶部创建一个视图,该视图仅显示您想要的列
      • 那样,你会“隐藏”所有你不需要的东西(rowids,对吧?)
        • 这也意味着您实际上会在选择中使用视图,而不是物化视图
      • 物化视图刷新会像往常一样工作

    例如:

    create materialized view vm_prueba2
      refresh fast on demand
      with rowid as
    select 
       o.rowid o_rowid,
      ...
    from ...;
    
    -- a view would select only some columns from the materialized view:
    create or replace view v_vm_prueba2 as
      select empleadoid,
             clienteid,
             fechaorden
    from vm_prueba2;
    

    【讨论】:

    • 您好,感谢您的回复。不知道能不能告诉我一个很小的例子,我不是很清楚,我创建了两个视图,一个带有rowid的物化视图,一个调用物化视图的普通视图??,谢谢
    • 没错,这就是我的意思。我贴了一个例子,看看。
    猜你喜欢
    • 2011-04-06
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多