如果第一个条件匹配,则 PLSQL 过程返回 true



我在一个过程中有以下代码片段,希望进行优化和审查以提高代码效率和标准。

查询从第一个表中选择三个部门并分配给三个局部变量,然后打开 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>>
....
....

最新更新