FOR循环Netezza公司的问题(FOR loop Netezza issue)

2019-10-19 09:15发布

我与Netezza公司的存储过程的工作。 我要循环值的范围。 环路上的上界被作为变量到由用户的存储过程通过。

即EXECUTE SPROC(12);

这样的问题是,Netezza公司(aginity工作台)将不接受该输入变量作为环路上的上界。

DECLARE 
 x alias as $1.
begin 
   for i in 1..x loop
     ...do stufff... 
    end loop; 
end;

我知道,这可以通过使用循环和退出风格环路来解决,但它吃了我,为什么我不能做上面给出的文档表明,它有可能这样做。

任何人都知道为什么这不工作或如何使它工作?

谢谢。 克兰西。

Answer 1:

请在下面找到工作的例子 -

CREATE OR REPLACE PROCEDURE generateTime(integer)
LANGUAGE NZPLSQL RETURNS varchar(255) AS

BEGIN_PROC

DECLARE
        p_abc     integer;
        p_bcd     integer;

        p_var1    ALIAS FOR $1;


BEGIN
        p_bcd := ISNULL(p_var1, 10);

        raise notice 'p_bcd=%',p_bcd;

        FOR p_abc in 0..(p_bcd)
        LOOP
                raise notice 'Hello World %', p_abc;
        END LOOP;
END;


END_PROC;

希望这会有所帮助。



文章来源: FOR loop Netezza issue