While方式:
BEGIN
-- 暂存变量.
DECLARE v_id VARCHAR(10);
DECLARE v_value VARCHAR(10);
DECLARE SQLCODE INT;
-- 定义游标.
DECLARE c_test_main CURSOR FOR
SELECT ID, VALUE FROM TEST;
-- 打开游标.
OPEN c_test_main;
-- 填充数据.
FETCH c_test_main INTO v_id, v_value;
-- 假如检索到了数据,才处理.
WHILE (SQLCODE = 0) DO
--INSERT INTO output_debug VALUES(v_value);
update TEST set QTR=v_value where ID = v_id and VALUE=v_value;
-- 填充下一条数据.
FETCH c_test_main INTO v_id, v_value;
END WHILE;
-- 关闭游标
CLOSE c_test_main;
END
Loop方式:
BEGIN
-- 暂存变量.
DECLARE v_id VARCHAR(10);
DECLARE v_value VARCHAR(10);
DECLARE SQLCODE INT;
-- 定义游标.
DECLARE c_test_main CURSOR FOR
SELECT id, value FROM Test;
-- 打开游标.
OPEN c_test_main;
MyLoop: LOOP
-- 填充数据.
FETCH c_test_main INTO v_id, v_value;
IF (SQLCODE = 0) THEN
-- 假如检索到了数据,插入 debug 表.
update TEST set QTR='--' where ID = v_id and VALUE=v_value;
ELSE
-- 假如没有数据,跳出循环.
LEAVE MyLoop;
END IF;
END LOOP;
-- 关闭游标
CLOSE c_test_main;
END