为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:V8.1-2-192-2023.01.03-178822-20033-ENT
【操作系统】:银河麒麟V10 SP1
【CPU】:kumpeng-920
【问题描述】*:如下图,提示物化视图不支持含派生表的复杂查询
第26行的详细语句如下图:
以下是详细的语句:
create materialized view "TOPICIS"."V3_E_BRCHINFO"
build immediate
refresh on demand with primary key force
disable query rewrite
as SELECT
CAST(to_CHAR(REG_CHILDENT.ID) AS VARCHAR(50) ) AS BRID,
CAST(to_char(zt.id) AS VARCHAR(23) ) AS PPRIPID,
CAST((SELECT ID FROM REG_MarPriPInfo ZT WHERE ZT.ENTNAME=REG_CHILDENT.ENTName AND ROWNUM=1) as varchar(23) ) AS PRIPID,
CAST(REG_CHILDENT.ENTName AS VARCHAR(100) ) AS BRNAME,
CAST(REG_CHILDENT.REGNO AS VARCHAR(50) ) AS REGNO,
-- CAST((SELECT ZT.UNISCID FROM REG_MarPriPInfo zt WHERE ZT.ENTNAME=REG_CHILDENT.ENTName AND ROWNUM=1) AS VARCHAR(18) ) AS UNISCID,
CAST(REG_CHILDENT.UNISCID AS VARCHAR(18) ) AS UNISCID,
CAST((SELECT B.CODE FROM A_ORGAN B WHERE B.ID=(SELECT ORGID FROM REG_MarPriPInfo zt WHERE zt.ENTNAME=REG_CHILDENT.ENTName AND ROWNUM=1) AND ROWNUM=1) AS VARCHAR(64) ) AS REGORG,
CAST((SELECT B.name FROM A_ORGAN B WHERE B.ID=(SELECT ORGID FROM REG_MarPriPInfo zt WHERE zt.ENTNAME=REG_CHILDENT.ENTName AND ROWNUM=1) AND ROWNUM=1) AS VARCHAR(128) ) AS REGORG_CN,
CAST(REG_CHILDENT.MODIDATE AS DATE ) AS REGIDATE,
CAST((select code from INC_LOCAL) AS VARCHAR2(6)) AS S_EXT_FROMNODE,
CAST(NULL AS TIMESTAMP) AS S_EXT_DATATIME
FROM REG_CHILDENT
INNER JOIN REG_MarPriPInfo zt ON zt.ID=REG_CHILDENT.MarPrID
WHERE REG_CHILDENT.Batch='1'
AND zt.State IN ( '06', '11', '07')
AND zt.RegType <>'02'
AND zt.EntType not in ('8100','8200','8000','9600')
and zt.ID not in (select ID FROM ecps_exceptinfo)
请老师们看看是什么原因,是否有相关参数可以设置或者如何修改
做个试验,用目前物化视图的查询语句先创建一个视图,然后看看这个视图是否能正常查询。如果视图正常的话,基于视图来创建物化视图,也就是
CREATE MATERIALIZED VIEW ...
...
AS
SELECT * FROM 视图名;
你试下这个方法是否能够绕过物化视图的语法限制。