我正在使用netezza中的存储过程。我想循环遍历一系列的值。用户将循环的上限作为变量传递给存储过程。
即执行SPROC(12);
所以问题是Netezza (aginity workbench)不会接受这个输入变量作为循环的上限。
即
DECLARE
x alias as $1.
begin
for i in 1..x loop
...do stufff...
end loop;
end;我知道这可以使用循环和出口样式的循环来解决,但是它让我苦恼,为什么我不能做上面的事情,因为文档表明可以这样做。
有谁知道为什么这不起作用,或者如何让它起作用?
谢谢。克兰西。
发布于 2014-02-24 19:01:49
请找到下面的工作示例-
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;希望这能有所帮助。
https://stackoverflow.com/questions/21870410
复制相似问题