Netezza while 循环语法

Netezza while loop syntax

我想在 netezza 中做一个声明,以便它等到声明正确后再继续。任何帮助将不胜感激 - 类似于下面的内容

WHILE (
select count(*) EVENT_DESCRIPTION from TEST_DA_CONTROL.CTRL.C_DBA_MAINTENANCE_AUDIT
    where EVENT_DESCRIPTION = 'STARTED' and DATETIME_LOGGED > (select add_months(current_date,0))) = 0
LOOP
wait 5
end loop;

但我不知道正确的语法。

最好将该输出分配给一个变量。我似乎记得在 nzplsql 中从 execute immediate 中获取数据有点费力,但是已经有方便的变量可供您使用。这里我将使用 ROW_COUNT.

declare 
  event_descriptions int;
  sql varchar;

begin  
  event_descriptions := 1;
  while event_descriptions > 0 loop
    --Actual work
    sql := '
      select * EVENT_DESCRIPTION from TEST_DA_CONTROL.CTRL.C_DBA_MAINTENANCE_AUDIT
      where EVENT_DESCRIPTION = ''STARTED'' and DATETIME_LOGGED > (select add_months(current_date,0))) = 0;';
    execute immediate sql;
    event_descriptions := ROW_COUNT;
  end loop;
end;