在 Cursor 上使用条件,当它在 DB2 中为 Emty( NOT FOUND)

Using condition on Cursor, when it's Emty( NOT FOUND) in DB2

我想像在 Oracle 中一样在 Cursor 上设置条件 (IF cur%NOTFOUND THEN ..)。 我尝试在 DB2 中使用此代码:

CREATE OR REPLACE PROCEDURE PROC_SAMPLE1()
BEGIN ATOMIC
DECLARE V_DESCRIPTION_1 VARCHAR(4000);
DECLARE V_DESCRIPTION_2 VARCHAR(4000);
DECLARE sys cursor FOR select DESCRIPTION_1, DESCRIPTION_2 from DESC;
open sys;
TEST:
LOOP 
IF (sys IS NOT FOUND) THEN // **error in this line**
LEAVE TEST;
END IF;
fetch FROM sys INTO V_DESCRIPTION_1,V_DESCRIPTION_2;
-- other treatments
    END IF;
END LOOP TEST;
close sys;
END;

我遇到了这个错误:

SQL0206N  "SYS" is not valid in the context where it is used.  LINE NUMBER=15.
SQLSTATE=42703

我用 Select 语句替换了光标,我的问题就解决了:

CREATE OR REPLACE PROCEDURE PROC_SAMPLE1()
BEGIN ATOMIC
DECLARE V_DESCRIPTION_1 VARCHAR(4000);
DECLARE V_DESCRIPTION_2 VARCHAR(4000);

FOR v_row AS select DESCRIPTION_1, DESCRIPTION_2 from DESC DO   
-- other treatments

END FOR;

END;