Netezza while循环语法

时间:2016-09-02 10:30:40

标签: netezza

我想在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;

但我不知道正确的语法。

1 个答案:

答案 0 :(得分:0)

最好将该输出分配给变量。我似乎记得在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;
相关问题