【问题标题】:Netezza while loop syntaxNetezza while 循环语法
【发布时间】:2016-09-02 10:30:40
【问题描述】:

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

但我不知道正确的语法。

【问题讨论】:

    标签: netezza


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      • 2011-02-15
      • 1970-01-01
      相关资源
      最近更新 更多