2016-09-02 20 views
0

私はnetezzaでステートメントを作成して、ステートメントが正しいまで待ってから続行します。どんな助けもありがとう - 以下のようなものNetezza while whileループ構文

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; 

私は正しい構文を知らない。

答えて

0

その出力を変数に割り当てるのが最適です。 execute immediateからデータを取得することは、nzplsqlでは少し難しいことを思い出していますが、使用できる便利な変数があります。ここでは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;