为什么物化视图的 DDL 会出错?

问题描述

我正在尝试创建一个如下所示的物化视图并出现错误,敬请指教。

Oracle 版本:12.2.0.1.0

CREATE MATERIALIZED VIEW EDW_TEST_MV
REFRESH FAST ON DEMAND
ENABLE QUERY REWRITE
AS
(
SELECT
distinct TXN_REF,ACQ_ENT_KEY,ACQ_SR_BNK_KEY,ISS_ENT_KEY,ISS_SR_BNK_KEY,ACQ_INST_ID,ISS_INST_ID,INTMNT_MRCHNT_KEY,TXN_MD_KEY,TXN_TP_KEY,TXN_TRMSN_DT,TXN_LCL_DT,TXN_TIMEOUT,SRC_ACQ_MEM,TXN_AUTH_CD,JV_ERROR_CD,DST_DENIAL_CD,DST_ISS_MEM,STTS,ACQ_NODE_ID,ISS_NODE_ID,RRN,URN,GOV_ORGSC_URN,TXN_AMT,SRC_SYS_KEY
FROM EDW_TEST_F)
group by 
ACQ_ENT_KEY,SRC_SYS_KEY
);

group by
*
ERROR at line 34:
ORA-00933: sql command not properly ended

解决方法

试试下面的。我在 from 子句后去掉了括号。

CREATE MATERIALIZED VIEW EDW_TEST_MV
REFRESH FAST ON DEMAND
ENABLE QUERY REWRITE
AS
(
SELECT
distinct TXN_REF,ACQ_ENT_KEY,ACQ_SR_BNK_KEY,ISS_ENT_KEY,ISS_SR_BNK_KEY,ACQ_INST_ID,ISS_INST_ID,INTMNT_MRCHNT_KEY,TXN_MD_KEY,TXN_TP_KEY,TXN_TRMSN_DT,TXN_LCL_DT,TXN_TIMEOUT,SRC_ACQ_MEM,TXN_AUTH_CD,JV_ERROR_CD,DST_DENIAL_CD,DST_ISS_MEM,STTS,ACQ_NODE_ID,ISS_NODE_ID,RRN,URN,GOV_ORGSC_URN,TXN_AMT,SRC_SYS_KEY
FROM EDW_TEST_F
group by 
ACQ_ENT_KEY,SRC_SYS_KEY
);