如何在Netezza中运行代码块

时间:2014-02-24 15:23:46

标签: sql netezza

我试图在Aginity中为Netezza运行一些代码而不将其放在存储过程中,但我无法正确使用语法。以下是一些示例代码。它给出了“Found”DECLARE“(在char 1处)期望关键字的错误。”如果我将代码放在存储过程中,它将运行良好。

declare
cnt integer;
rVend record;

begin

FOR rVend in select vend_skey, vend_lvl_1_cd from dim_vend loop
    select count(*) into cnt
    from dim_vend 
    where vend_lvl_1_cd = rVend.vend_lvl_1_cd and vend_skey < rVend.vend_skey;

    if cnt > 0 then
        update dim_vend
        set to_delete = 1 where vend_skey = rVend.vend_skey;
    end if;

end loop;

end;

1 个答案:

答案 0 :(得分:2)

问题在于Netezza不允许在存储过程之外使用变量。

如果使用Aginity Workbench查询数据库,则可以使用“参数替换”作为解决方法。这基本上是Workbench在运行SQL之前实现的查找和替换。语法为$ParamName