我正在处理嵌套游标,我有一个场景,如果游标输出不返回任何数据,我需要将数据插入到表中,如果它存在,那么我需要插入到另一个表,比如日志表。
DECLARE
CURSOR emp_details IS
SELECT
empname,
lastname
FROM
emp
WHERE
empname = 'xxx';
v_is_active VARCHAR2(50 BYTE);
v_is_include VARCHAR2(50 BYTE);
lv_emp_name emp.empname%TYPE;
lv_lastname emp.lastname%TYPE;
BEGIN
OPEN emp_details;
LOOP
FETCH emp_details INTO
lv_emp_name,
lv_lastname;
**IF emp_details%notfound** THEN
IF v_is_active = 'A' THEN
执行一些活动,如插入表T1
END IF;
IF v_is_include = 'I' THEN
执行一些活动,如插入表T2
END IF;
ELSE
INSERT INTO emp (
empname,
isnew
) VALUES (
lv_emp_name,
0
);
END IF;
-----exit : if i add here this will terminate the loop and will execute only once ie the loop will not go for next iteration. If i didnt use exit it is going on infinite loop.
-- IF IF emp_details%FOUND - IF CURSOR HAS A RCORD
END LOOP;
CLOSE emp_details;
END;
使用Notfound方法检查值是否存在并插入数据。这里我的问题是我不能退出该方法。如果我存在使用EXIT命令的方法,它只运行一行,不会执行游标的第二行。如何退出游标而不进行无限循环
1条答案
按热度按时间4szc88ey1#
希望下面的一个帮助光标不需要