【DM版本】: 8
【操作系统】: win11
【CPU】: intel
【问题描述】*:
我创建了一个物化视图,指定了 start time 和 next time
CREATE MATERIALIZED VIEW CHROLLY_COMPILE.MVVVVV1(EMPLOYEE_NAME,PHONE_NUM) STORAGE(ON "CHROLLY_COMPILE", CLUSTERBTR)
REFRESH FORCE START WITH DATETIME '2028-12-30 14:44:15' NEXT DATETIME '2030-12-30 14:45:18' WITH PRIMARY KEY ENABLE QUERY REWRITE
AS
SELECT EMPLOYEE_NAME,PHONE_NUM FROM CHROLLY_COMPILE.EMPLOYEE;
现在有个业务需求需要通过sql的方式查询START WITH DATETIME 和 NEXT DATETIME这两字段,
但是查了很多文档都没有找到对应的字段如何查询
能提供下如何查询吗?
-- 创建语句
CREATE MATERIALIZED VIEW CHROLLY_COMPILE.MVVVVV1(EMPLOYEE_NAME,PHONE_NUM) STORAGE(ON "MAIN", CLUSTERBTR)
REFRESH FORCE START WITH DATETIME '2028-12-30 14:44:15' NEXT DATETIME '2030-12-30 14:46:18' WITH PRIMARY KEY ENABLE QUERY REWRITE
AS
SELECT EMPLOYEE_NAME,PHONE_NUM FROM CHROLLY_COMPILE.EMPLOYEE;
SELECT MVIEW_NAME,SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(src,'START WITH DATETIME',-1),'''',2),'''',-1) start_time,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(src,'NEXT WITH DATETIME',-1),'''',2),'''',-1) start_time
FROM(
SELECT MVIEW_NAME,UPPER (VIEWDEF('CHROLLY_COMPILE','MVVVVV1')) src FROM USER_MVIEWS )
没找到好办法,想了个奇葩的路子,就是从物化视图的DDL脚本里用正则表达式把参数扒出来,你看看是否能跑的通
SELECT TO_DATE(REGEXP_SUBSTR(SRC,'start with datetime\s+''([^'']+)''',1,1,'i',1)) AS START_TIME ,TO_DATE(REGEXP_SUBSTR(SRC,'next datetime\s+''([^'']+)''',1,1,'i',1)) AS NEXT_TIME ,src FROM (SELECT VIEWDEF('CHROLLY_COMPILE','MVVVVV1') AS SRC)