2

由于出现以下错误,我无法使用 %notfound。我怎么能克服这个?除了这种方法之外,我无法找到使用游标的方法。请帮助使用其他方法来使用游标循环而不使用 %notfound。

"EXIT WHEN c_rqstid" 后面的字符 "%" 无效.. SQLCODE=-7, SQLSTATE=42601, DRIVER=3.63.123 SQL Code: -7, SQL State: 42601

我已经将@设置为分隔符,代码如下

create PROCEDURE TEST111()
AS: 
begin 
DECLARE c_id integer; 
DECLARE c_isactive integer; 
DECLARE c_status integer; 
CURSOR c_rqstid is SELECT REQUESTID,REQUESTSTATUS,ISACTIVE FROM SAMPLE.REQUEST;
 OPEN c_rqstid;
  FOR LOOP FETCH c_rqstid into c_id,c_status,c_isactive ;
  ----will code this later
  EXIT WHEN c_rqstid%NOTFOUND;
  END LOOP;
 CLOSE c_rqstid;
end
@

提前感谢您的任何帮助...

4

1 回答 1

2

您需要检查 SQLCODE 或 SQLSTATE 变量:

http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.apdv.sqlpl.doc/doc/c0009028.html

 DECLARE SQLCODE INTEGER DEFAULT 0;
 DECLARE SQLSTATE CHAR(5) DEFAULT '00000';

 WHILE(SQLSTATE = '00000') DO
    SET p_sum = p_sum + p_sal;
    FETCH FROM c INTO p_sal; 
 END WHILE;
于 2014-02-09T03:38:29.940 回答