如何解决在物化视图中更改字段 - oracle
晚安,
我有一个工作实体化视图,我将向其中添加 15 个类似于下面示例行中的左连接,有没有办法编辑它并隐藏 rowids?,如果我用主键替换 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 )
解决方法
- 创建一个包含所有
rowid
的物化视图 - 在该物化视图的顶部创建一个视图,该视图仅显示您想要的列
- 那样,您就可以“隐藏”不需要的所有内容(
rowid
,对吗?)- 这也意味着您实际上会在选择中使用视图,而不是物化视图
- 物化视图刷新将照常
- 那样,您就可以“隐藏”不需要的所有内容(
例如:
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;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。