以经典的阶乘算法为例。
[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;