|
本帖最后由 samt007 于 2017-4-28 16:49 编辑
N版,可以咨询一个物化视图的问题么?
如果我想实现基于自定义函数的物化视图,并且是快速刷新的,有解决的办法么?
例如:CREATE MATERIALIZED VIEW LOG ON INV.MTL_SYSTEM_ITEMS_B WITH ROWID;
CREATE MATERIALIZED VIEW XYG_ALI_SYSTEM_ITEMS_MV
TABLESPACE XYG_DATA --保存表空间
Build immediate--立刻刷新
REFRESH FAST--快速刷新
-- On commit --基表提交的时候刷新
With ROWID
AS
SELECT MSIB.ROWID MSIB_ROWID
,MSIB.ORGANIZATION_ID
,MSIB.INVENTORY_ITEM_ID
,MSIB.SEGMENT1 ITEM_NUMBER
,MSIB.DESCRIPTION ITEM_DESC
,XYG_PUB_INV_PKG.GET_ITEM_PROPERTY(MSIB.SEGMENT1,MSIB.DESCRIPTION,'SPEC' ) GUIGE--自定义函数
FROM MTL_SYSTEM_ITEMS_B MSIB
WHERE INVENTORY_ITEM_ID=270;
现在这个会报错:ORA-12015: 不能从复杂查询中创建一个可快速刷新的实体化视图
不过我觉得应该还是不行的,因为Oracle应该不知道我们自定义的函数究竟涉及到多少个基表,无法用DML的日志,也就无法快速刷新。
|
|