CREATE MATERIALIZED VIEW TEST
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
AS
WITH test1
AS ( SELECT EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT,
DAT.DATES V_DATCPT
FROM (SELECT /*+ USE_HASH(TPAI,VLEMP,EMPY,PRDE) */
EMP.EMPY_UID EMPY_UID,
PRDE.PRDE_UID PRDE_UID,
PRDE.PRDE_DATDEBMVT PRDE_DATDEBMVT,
PRDE.PRDE_DATFINMVT PRDE_DATFINMVT
FROM GRH_EMPLOYES EMP
INNER JOIN GRH_PERIODES PRDE
ON EMP.EMPY_TYPEMP = 1
AND PRDE.PRDE_CLO != 1 and PRDE.PRDE_VLD != 1
AND emp.empy_uid = 1093
AND emp.empy_UID IN
(SELECT EMPY.EMPY_UID
FROM GRH_EMPLOYES EMPY
INNER JOIN
V_GRH_PAI_LISTEMPLOYESCALCP
VLEMP
ON EMPY.EMPY_UID =
VLEMP.EMPY_UID + 0
WHERE EMPY.GRPE_UID <> 4
AND EMPY.pstn_uid + 0 = 26)
INNER JOIN GRH_TYPEPAIE TPAI
ON PRDE.TPAI_UID = TPAI.TPAI_UID
WHERE TPAI.TPAI_COD = '001' AND 1 = 1) EMPPRD
INNER JOIN
(SELECT (SELECT PRDE.PRDE_DATDEBADM
FROM GRH_PERIODES PRDE, GRH_TYPEPAIE TPAI
WHERE TPAI.TPAI_COD = '001'
AND PRDE.PRDE_UID =
ANY (SELECT MAX (PRDE1.PRDE_UID)
FROM GRH_PERIODES PRDE1,
GRH_TYPEPAIE TPAI1
WHERE PRDE1.PRDE_VLD = 1
AND TPAI1.TPAI_COD =
'001'
AND PRDE1.TPAI_UID =
TPAI1.TPAI_UID
INTERSECT
SELECT PRDE.PRDE_UID
FROM GRH_PERIODES PRDE
WHERE PRDE.TPAI_UID =
TPAI.TPAI_UID)
AND PRDE.TPAI_UID = TPAI.TPAI_UID
AND TPAI.TPAI_COD = '001')
+ ROWNUM
- 1
DATES
FROM all_objects
WHERE ROWNUM <= 90) DAT
ON DAT.DATES BETWEEN TO_DATE (
TO_CHAR (EMPPRD.PRDE_DATDEBMVT,
'DD/MM/YYYY'),
'DD/MM/YYYY')
AND TO_DATE (
TO_CHAR (EMPPRD.PRDE_DATFINMVT,
'DD/MM/YYYY'),
'DD/MM/YYYY')
GROUP BY EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT,
DAT.DATES)
SELECT EMPY_UID,
PRDE_UID,
V_DATCPT,
PKG_GRH_MVT.GRH_MVT_ISABSENCEIRREGULIER (
V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
ABSIRR,
PKG_GRH_MVT.GRH_MVT_ISABSENCEMALADIE (
V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
ABSMLD,
PKG_GRH_MVT.GRH_MVT_ISABSENCESANCTION (
V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
ABSSANCTION,
PKG_GRH_MVT.GRH_MVT_ISABSENCEACCIDENT (
V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
ABSENCEACCIDENT,
PKG_GRH_MVT.GRH_MVT_ISFORMATION (
V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
NBRFORMATION,
PKG_GRH_MVT.GRH_MVT_ISABSENCEMISEENDISPO (V_DATCPT, EMPY_UID)
ABSENCEMISEENDISPO,
PKG_GRH_MVT.GRH_MVT_ISABSENCESOUSDRAPEAU (V_DATCPT, EMPY_UID)
ABSENCESOUSDRAPEAU,
PKG_GRH_MVT.GRH_MVT_ISABSENCECNGSANSSOLDE (
V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
ABSENCECNGSANSSOLDE,
PKG_GRH_MVT.GRH_MVT_ISABSENCEENTREE (V_DATCPT, EMPY_UID) ABSENCEENTREE,
PKG_GRH_MVT.GRH_MVT_ISABSENCEDEPART (V_DATCPT, EMPY_UID) ABSENCEDEPART,
PKG_GRH_MVT.GRH_MVT_ISCONGEANN (V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
CNGANN,
PKG_GRH_MVT.GRH_MVT_ISFERIER (V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
FERIER,
PKG_GRH_MVT.GRH_MVT_ISAUTRE (V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
AUTRE,
PKG_GRH_MVT.GRH_MVT_ISREPOS (V_DATCPT,
EMPY_UID,
GRH_MVT_EXISTANCEPTG (EMPY_UID,
PRDE_UID,
PRDE_DATDEBMVT,
PRDE_DATFINMVT),
PRDE_UID)
REPOS,
PKG_GRH_CNG.GRH_CNG_ISJOURREPOSHEB (V_DATCPT, EMPY_UID)
V_JOURREPOSHEB,
PKG_GRH_CNG.GRH_CNG_ISJOUROEUVRET (V_DATCPT, EMPY_UID) V_JOUROEUVRET,
PKG_PRM_GLOBAL.PRM_ISJOURFERIER (V_DATCPT) V_JOURFERIER
FROM test1
答案 0 :(得分:2)
使用DBMS_MVIEW.EXPLAIN_MVIEW()
来了解如何使用该实例化视图。
从文档中
此过程使您可以了解实例化视图或潜在实例化视图的可能。例如,您可以确定实例化视图是否可以快速刷新,以及可以对特定的实例化视图执行哪种类型的查询重写。