PL/SQL游标循环匹配到首条记录后立即退出的实现方法问询
实现方案
要在FOR循环遍历游标时匹配到首行就终止循环,直接使用PL/SQL提供的EXIT关键字即可,匹配到目标条件后主动跳出循环,无需遍历后续数据。
另外注意原代码存在语法问题:PL/SQL中给变量赋值的运算符是:=,不是=,需要同步修正。
修正后代码
BEGIN FOR lc IN find_c LOOP IF lc.charge > 0 THEN lv_year := lc.year; -- 匹配到首行后直接退出循环 EXIT; END IF; END LOOP; END; /
补充说明
- 如果需要确认是否有匹配到符合条件的记录,可以在循环外提前给
lv_year赋默认值(比如NULL),循环结束后判断lv_year是否为默认值即可知晓是否命中数据 - 该实现逻辑和游标加
rownum=1的执行效率基本一致,前者在PL/SQL层控制终止,后者在SQL查询层就限制了返回行数,可根据实际业务场景选择
内容的提问来源于stack exchange,提问作者arsha
相关产品推荐
相关产品推荐

