Amazon redshift 存储过程,CONTINUE 不能在循环外使用;

Posted

技术标签:

【中文标题】Amazon redshift 存储过程,CONTINUE 不能在循环外使用;【英文标题】:Amazon redshift stored procedure, CONTINUE cannot be used outside a loop; 【发布时间】:2020-03-25 15:26:14 【问题描述】:

我正在亚马逊红移中构建一个存储过程。 这是我尝试做的一个例子。

CREATE OR REPLACE PROCEDURE test_sp1()
LANGUAGE plpgsql
AS $$
DECLARE v_test RECORD;
BEGIN
FOR v_test IN select * from pg_user
  LOOP
    RAISE INFO 'before loop';
    CONTINUE;
    RAISE INFO 'after loop';
  END LOOP;
END;
$$;
CALL test_sp1();

这段代码给了我一个例外 “[42601][500310] Amazon 无效操作:CONTINUE 不能在循环外使用”。

为什么我不能在这个循环中使用 continue ?

【问题讨论】:

为什么要在FOR 中添加LOOPCONTINUE 将用于退出嵌套循环。在单个循环中执行 Continue 仅意味着循环将再次运行,这似乎没有意义。你真正想要完成什么? 这只是一个例子。实际上我的 sp 不同而且很长,但是 continue 的问题是相似的。 【参考方案1】:

当 CONTINUE 将控制权传递到循环的开头但没有更多的迭代可以完成时,似乎正在发生错误。

【讨论】:

以上是关于Amazon redshift 存储过程,CONTINUE 不能在循环外使用;的主要内容,如果未能解决你的问题,请参考以下文章

没有函数或存储过程的 Amazon RedShift 中的 Upsert

Amazon redshift 存储过程,CONTINUE 不能在循环外使用;

无法使用 refcursor 调用 Redshift 存储过程

Amazon Redshift 是不是有自己的存储后端

Amazon Redshift 框架(Oracle 数据仓库迁移)

无法在 Redshift Aginity 和 aginity pro 中创建存储过程