PL/SQL嵌套循环演示代码遇>符号编译报错问题求解
报错原因排查
- 核心语法错误是循环标签定义不完整:PL/SQL 中命名循环的语法规范为
<<自定义标签名>>,你代码中两层循环前的标签都写成了空的<<>>,没有填写后续EXIT语句用到的outer_loop、inner_loop标签名,语法解析不通过就触发了符号不匹配的报错。 - 次要问题是代码中存在HTML转义字符:你贴出的代码里的
>是大于号>的HTML编码格式,实际编写PL/SQL代码时需要替换为原生的>符号(如果是代码粘贴时自动转义的可以忽略这条,仅修复标签问题即可)。
修复方案
补充两层循环的标签名称即可正常运行,修复后的完整代码如下:
DECLARE m PLS_INTEGER := 0; n PLS_INTEGER := 0; k PLS_INTEGER; BEGIN <<outer_loop>> LOOP n := n + 1; k := 0; DBMS_OUTPUT.PUT_LINE ('The values of inner loop are: '); <<inner_loop>> LOOP k := k + 1; m := m + n * k; -- Sum several products EXIT inner_loop WHEN (k > 3); DBMS_OUTPUT.PUT_LINE ('n='||TO_CHAR(n)||' k='||TO_CHAR(k)||' m='||TO_CHAR(m)); EXIT outer_loop WHEN ((n * k) > 6); END LOOP inner_loop; END LOOP outer_loop; DBMS_OUTPUT.PUT_LINE('The total sum after completing the process is: ' || TO_CHAR(m)); END; /
运行输出参考
The values of inner loop are: n=1 k=1 m=1 n=1 k=2 m=3 n=1 k=3 m=6 The values of inner loop are: n=2 k=1 m=8 n=2 k=2 m=12 The total sum after completing the process is: 12
内容的提问来源于stack exchange,提问作者Kaushik Paul
相关产品推荐
相关产品推荐

