首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FOR loop Netezza问题

FOR loop Netezza问题
EN

Stack Overflow用户
提问于 2014-02-19 11:26:52
回答 1查看 10.6K关注 0票数 1

我正在使用netezza中的存储过程。我想循环遍历一系列的值。用户将循环的上限作为变量传递给存储过程。

即执行SPROC(12);

所以问题是Netezza (aginity workbench)不会接受这个输入变量作为循环的上限。

代码语言:javascript
复制
DECLARE 
 x alias as $1.
begin 
   for i in 1..x loop
     ...do stufff... 
    end loop; 
end;

我知道这可以使用循环和出口样式的循环来解决,但是它让我苦恼,为什么我不能做上面的事情,因为文档表明可以这样做。

有谁知道为什么这不起作用,或者如何让它起作用?

谢谢。克兰西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-24 19:01:49

请找到下面的工作示例-

代码语言:javascript
复制
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;

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21870410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档