首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >存储过程实现递归算法

存储过程实现递归算法

作者头像
用户1148526
发布2019-05-25 19:46:16
发布2019-05-25 19:46:16
9800
举报
文章被收录于专栏:Hadoop数据仓库Hadoop数据仓库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1433222

以经典的阶乘算法为例。

Oracle

sql view plain copy

  1. create or replace procedure factorial(n in number, b out number)
  2. is
  3. c\_in number;
  4. c\_out number;
  5. begin
  6. if n!=1 **then**
  7. c\_in := n-1;
  8. factorial(c\_in,c\_out);
  9. b := n\*c\_out;
  10. else
  11. b := 1;
  12. end if;
  13. end;
  14. /
  15. --调用
  16. variable r number;
  17. exec factorial(6,:r);
  18. print r;

MySQL:

sql view plain copy

  1. drop procedure if exists factorial;
  2. set @@session.max_sp_recursion_depth=99;
  3. delimiter $$
  4. create procedure factorial (in n bigint, out b bigint)
  5. begin
  6. declare c_in bigint;
  7. declare c_out bigint;
  8. if n!=1 **then**
  9. set c_in := n-1;
  10. call factorial(c\_in,c\_out);
  11. set b:=n*c_out;
  12. else
  13. set b:=1;
  14. end if;
  15. end$$
  16. delimiter ;
  17. --调用
  18. call factorial(6,@r);
  19. select @r;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年12月28日,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档