在 Redshift 中创建函数以刷新所有物化视图

问题描述

我正在尝试创建一个函数,该函数可以作为日常处理的一部分进行调用,以刷新我们所有的物化视图。我希望这是动态的,因为在定义此函数后可能会添加新的物化视图。这是我所拥有的:

CREATE OR REPLACE FUNCTION refresh_all_materialized_views(schema_arg varchar)
RETURNS INT VOLATILE AS $$
DECLARE
    row RECORD;
BEGIN
    RAISE NOTICE 'Refreshing materialized view in schema %',schema_arg;
    FOR row IN SELECT name from STV_MV_INFO where schema = schema_arg
LOOP
    RAISE NOTICE 'Refreshing %.%',schema_arg,r.name;
    EXECUTE 'REFRESH MATERIALIZED VIEW ' || schema_arg || '.' || r.name;
END LOOP;

    RETURN 1;
END;
$$ LANGUAGE sql;

Redshift 抛出错误说明:

[42601][500310] 亚马逊无效操作:“RECORD”位置或附近的语法错误:125;

我不确定什么是不正确的。如果“RECORD”不是有效类型,如何实现这样的动态 SQL?感谢您的时间!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)