oracle - 提高 PL/SQL 的可读性以识别 LOOP 和单个 block

标签 oracle plsql

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它.

8年前关闭。




Improve this question




我对 PL/SQL (Oracle) 比较陌生。我能够成功地完成我的任务。遵循模块化编程后,我将程序划分为小的 PL/SQL block 。我也嵌套了 BEGIN-END在我的代码中。 (处理异常)

当我的代码库开始增长时,我可以看到里面有很多嵌套的 block ,我无法识别相应的 END对于每个 BEGIN block 。(当 block 更大时)。与嵌套 FOR LOOP 相同的情况也是。我同意 PL/SQL 中没有大括号。

我尽我所能改进了我的代码的缩进,并且在某种程度上代码现在是可读的。但是,如果其他人想阅读我的代码,我有一种感觉,我的代码可能不容易遍历。

你们提供一些建议来解决我的问题吗?

最佳答案

 <<outer_loop>>
 LOOP
   <<<block1>>
   BEGIN
       i := i + 1;
       j := 0;
       <<inner_loop>>
       LOOP
         -- Your Statements
         EXIT inner_loop WHEN (j > 5);
         EXIT outer_loop WHEN ((i * j) > 15);
       END LOOP inner_loop;
   END block1;
 END LOOP outer_loop;

尝试使用 LABELS (嵌入尖括号之间)。这应该可以帮助你!
您可以查找标签名称, block /循环的开始或结束位置!

其实这种Label可以用于GOTO

但不要过度使用它,因为它也会让你感到困惑:)

祝你好运!

关于oracle - 提高 PL/SQL 的可读性以识别 LOOP 和单个 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20772599/

相关文章:

Oracle 在 WHERE 子句中使用 CASE 语句

python - 如何修复Python中的 'TypeError: expecting string or bytes object'错误

sql - 如何给数据库约束以确保表中的这种行为?

sql - 我可以在 pl/sql 中使用查询本身作为过滤器吗?

oracle - ORA-01008 : not all variables bound after database upgrade

oracle - ORA-29283 : invalid file operation ORA-06512: at "SYS.UTL_FILE", 行 536

oracle - 是否可以将列作为参数传递给 ORDER BY 子句?

sql-server - 使用 Oracle SQL Developer 查询两个数据库

oracle - 当您尝试避免使用魔数(Magic Number)来表示字符串长度时,clob 类型是否在 PL/SQL 代码中使用了不好的做法?

sql - 删除oracle sql中的换行符