摘自(感谢原作者,为保存转载)
有时候编写Oracle中用游标等信息去循环处理逻辑的时候,对EXIT、RETURN、CONTINUE很容易搞混淆,网上搜了资料也不是很清楚,所以本人自己写了一小段代码测试了这三种用法。案例代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
PROCEDURE P_TASK IS
BEGIN
FOR MY_CU IN (SELECT SPBH, SPMCH FROM FUCM) LOOP
FOR MY IN (SELECT SPBH, SPMCH FROM FUCM) LOOP
IF MY_CU.SPBH =
'AAA'
THEN
RETURN;
--exit;
--
continue
;
ELSIF MY.SPBH =
'BBB'
THEN
INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES (
'123'
,
'123'
);
ELSE
INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES (
'222'
,
'222'
);
END IF;
INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES (
'333'
,
'333'
);
END LOOP;
END LOOP;
INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES (
'444'
,
'444'
);
END P_TASK;
|
本文通过一个具体的案例,详细解析了Oracle PL/SQL中RETURN、EXIT和CONTINUE三种流程控制语句的区别及使用场景。当条件满足时,RETURN会立即退出整个存储过程或函数,EXIT用于结束当前循环并进入外层循环的下一次迭代,而CONTINUE则跳过当前循环剩余部分,直接开始下一次循环。
114

被折叠的 条评论
为什么被折叠?



