版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1433222
以经典的阶乘算法为例。
Oracle:
sql view plain copy
- create or replace procedure factorial(n in number, b out number)
- is
- c\_in number;
- c\_out number;
- begin
- if n!=1 **then**
- c\_in := n-1;
- factorial(c\_in,c\_out);
- b := n\*c\_out;
- else
- b := 1;
- end if;
- end;
- /
- --调用
- variable r number;
- exec factorial(6,:r);
- print r;
MySQL:
sql view plain copy
- drop procedure if exists factorial;
- set @@session.max_sp_recursion_depth=99;
- delimiter $$
- create procedure factorial (in n bigint, out b bigint)
- begin
- declare c_in bigint;
- declare c_out bigint;
- if n!=1 **then**
- set c_in := n-1;
- call factorial(c\_in,c\_out);
- set b:=n*c_out;
- else
- set b:=1;
- end if;
- end$$
- delimiter ;
- --调用
- call factorial(6,@r);
- select @r;