我在一个过程中有以下代码片段,希望进行优化和审查以提高代码效率和标准。
查询从第一个表中选择三个部门并分配给三个局部变量,然后打开 for 循环以检查部门是否匹配并关闭循环。 理想情况下,如果第一个 if 条件为真,我想停止处理,如果不是,则第二个条件,如果不是第三个条件。
您可以使用EXIT WHEN
...或按如下方式GOTO
:
....
....
<<my_loop>>
FOR CUR_REC IN ( SELECT DEPT
FROM (
SELECT DISTINCT DEPT
FROM MYTABLES
) -- ACTUAL CODE IS QUITE COMPLEX QUERY
LOOP
IF ( CUR_REC.DEPT = L_DEPARTMENT1 OR CUR_REC.DEPT = L_DEPARTMENT2
OR CUR_REC.DEPT = L_DEPARTMENT3 ) THEN
O_RETURN_CODE := 0;
EXIT my_loop WHEN 1=1; -- or GOTO loop_end;
ELSE
O_RETURN_CODE := 1;
END IF;
END LOOP;
<<loop_end>>
....
....