Oracle物化视图不支持NVL

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

我使用此查询在Oracle中创建了一个简单的物化视图

SELECT p.registration_no, s.sponsor_no, s.sponsor_name, p.resignation_date
FROM nmr_registration_public p, lct_sponsor s
WHERE p.sponsor_no = s.sponsor_no;

我已将其刷新模式设置为FORCE ON COMMIT并且它正常工作。

我通过像这样添加NVL(p.resignation_date, SYSDATE)语句来改变这样的查询

SELECT p.registration_no, s.sponsor_no, s.sponsor_name, NVL(p.resignation_date, SYSDATE)
FROM nmr_registration_public p, lct_sponsor s
WHERE p.sponsor_no = s.sponsor_no;

然后我收到这个错误

ORA-12054:无法为实例化视图设置ON COMMIT刷新属性

如果刷新模式设置为NVL,则MView中不支持ON COMMIT吗?有没有其他声明不支持ON COMMIT

oracle oracle11g oracle10g materialized-views
1个回答
2
投票

问题不在于nvl,而在于sysdate

物化视图的定义查询不能包含任何不可重复的表达式(ROWNUM,SYSDATE,不可重复的PL / SQL函数等)。

© www.soinside.com 2019 - 2024. All rights reserved.