Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >存储过程实现递归算法

存储过程实现递归算法

作者头像
用户1148526
发布于 2019-05-25 11:46:16
发布于 2019-05-25 11:46:16
8720
举报
文章被收录于专栏: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 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mysql存储过程
CONCAT(person_no,"号犯人住", i , "号床位"); ---字符串拼接
用户5927264
2019/07/31
9.2K0
MySQL 数字辅助表去重、排序、行转列
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53895786
用户1148526
2019/05/25
2.5K0
Mysql高级7-存储过程
  存储过程是事先经过编译并存储在数据库中的一段sql语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库sql语言层面的代码封装与重用。
Se7eN_HOU
2023/08/15
1K0
MySQL--存储过程
储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。
用户10787181
2023/10/31
3150
【MySQL】存储过程
1、解耦合。数据库部分可交由专门的数据库管理人员去做,像前后端联合协作那样提供接口供后端调度。(这两天对后端开发又有了新的理解:作为前端和数据库之间数据转接的中间人。不论是哪种业务,后端架构如何发展,不都是为了数据走的更顺畅点吗?)作为后端开发人员,SQL是必备语言,但是如果条件允许,专业的事情交给专业的人来做。
看、未来
2021/12/20
8.8K0
Mysql之存储过程(下)
存储过程是由一组 SQL 语句构成的数据库对象,存储过程可以被存储在数据库中并在需要时执行。它支持控制流结构(如 IF 语句、CASE 语句、循环等),能够封装和重用数据库操作,提升代码的模块化和可维护性。
猫咪-9527
2025/04/29
3630
Mysql之存储过程(下)
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
注意:用户定义的变量无需对其进行声明或初始化,不声明或初始化获取到的值为NULL。
.29.
2023/11/20
2.9K0
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
Mysql的存储过程
参考:https://www.runoob.com/w3cnote/mysql-stored-procedure.html
别先生
2021/12/09
7.4K0
MySQL存储过程学习
作为mysql的初学者,自己看着教程视频,做的笔记,以便日后回顾复习,纯手打,可能有些误差,可指出更正。
sgr997
2022/11/10
5370
MySQL存储过程
SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
流柯
2018/08/30
15.6K0
MySQL存储过程
mysql存储过程实例_sql存储过程创建实例详解
我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
全栈程序员站长
2022/09/27
2.9K0
Mysql存储过程
存储过程就是一条或者多条SQL语句的集合,可以视为批文件。它可以定义批量插入的语句,也可以定义一个接收不同条件的SQL。
用户3467126
2019/08/29
8.1K0
MySQL---存储过程复习
存储过程 存储过程 特点 基本语法格式 关于存储过程的参数 1.输入参数 2.输出参数 3.输入参数输出参数可以一起使用 4.INOUT输入输出参数,具有in和out的双重功能 示例 1.使用in参数 2.创建带输入和输出参数的存储过程 注意 3.使用INOUT参数,具有in和out的双重功能 4.存储过程使用局部变量 5.使用 [ select 字段 into变量 ] 把查询的结果赋值给变量 存储过程中的流程控制 IF语句 循环遍历 查看存储过程列表 查看某个存储过程的结构和信息 存储过程的删除
大忽悠爱学习
2021/11/15
4300
利用Oracle dbms_pipe实现存储过程之间的通信
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53909694
用户1148526
2019/05/25
7850
MySQL 视图/存储过程/触发器
视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。
用户9615083
2022/12/25
2.9K0
MySQL 视图/存储过程/触发器
MySQL 之存储过程
存储过程是数据库存储的一个重要的功能,MySQL在5.0以前的版本不支持存储过程,存储过程可以在大大提高数据库处理速度的同时提高数据库编程的灵活性。 1、什么是存储过程? 存储过程是一组为了完成特定功能的SQL语句集合。使用存储过程的目的是将常用或复杂的工作预先用SQL语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此成为存储过程。当以后需要数据库提供与定义好的存储过程的功能相同的服务时,只需要调用“CALL 存储过程名字”即可自动完成。
小手冰凉
2020/05/11
2.7K0
从头开始学MySQL——-存储过程与存储函数(1)
存储过程就是一条或者多条SQL语句的集合,可以视为批文件。它可以定义批量插入的语句,也可以定义一个接收不同条件的SQL。
全栈程序员站长
2022/09/23
6440
从头开始学MySQL——-存储过程与存储函数(1)
MySQL存储过程
1、提高代码的重用性 2、简化操作 3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
程序猿的栖息地
2022/04/29
10.9K0
MySQL的存储过程_MySQL创建存储过程
在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表、C表甚至其他更多表的数据,为什么会这样呢?
全栈程序员站长
2022/11/08
25.9K0
MySQL的存储过程_MySQL创建存储过程
使用DBMS_LOGMNR分析归档日志应用一例
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53905885
用户1148526
2019/05/25
7780
相关推荐
mysql存储过程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档