![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归调用
文章平均质量分 81
码三狼
孤独的旅行
展开
-
PLSQL入门与精通(第81章:利用游标进行递归调用的时候游标数超标问题)
这次我们重点说明一下递归调用的注意点。递归调用,因为循环处理次数很多,所以他是非常容易消耗资源的,这是我们要注意的。特别是在进行显示的游标处理时,如果关闭游标是在递归调用前进行的话,随着调用的传递,打开的游标数量会不停地增加,若超过游标数量的上限,则会出错:“ORA-01000:超过了开启的最大游标数”。因此,要注意显式游标和递归调用组合使用的时候的这个问题。接下来我们针对这个问题举例说明:我们接着使用第79章提到的例子:“用递归调用进行阶层查询”,我们用递归调用+显式游标的方式进行处理。程原创 2021-04-06 20:15:47 · 375 阅读 · 0 评论 -
PLSQL入门与精通(第80章:利用递归调用进行层级关系数据的更新)
上次,介绍了阶层查询SQL的使用,也介绍了使用递归调用实现递归查询的逻辑。这次我们介绍使用递归调用进行数据更新的例子。我们继续用职员表(EMP表)的例子来说明。比如有这样的一个例子:我们假设把一定数量钱(奖金?)交给某个员工(A)。A把这个钱的一半作为自己的奖励,加在自己的工资(SAL)里,剩下的钱均等地分给自己的下级。每个下级都会重复做类似以上的事情。直到员工再没有下级的时候,那个员工会把拿到的钱全部作为自己奖励加在自己的工资(SAL)里。处理就结束了以下是这个处理过程的代码例子。1原创 2021-04-05 21:08:46 · 292 阅读 · 0 评论 -
PLSQL入门与精通(第79章:递归调用与层级关系的例子)
上次,解说了一下递归调用的简单的例子。上次的例子函数只是单纯的返回计算结果的,这次递归调用例子改用数据库的表。这个例子是关于阶层查询相关内容。表中包含阶层(上下级)关系,我们通过递归调用把阶层关系显示出来。例如,员工表(EMP表)有三个字段:员工编号EMPNO,员工姓名ENAME,该员工所属的上级员工编号MGR。这个表中包含了上下级的关系,一个上级有多个下级。用以下的是阶层查询的SQL就可以吧他们的阶层关系查询出来:SELECT LEVEL , EMPNO, ENAME, MGRFROM E原创 2021-04-05 09:29:58 · 287 阅读 · 0 评论