概述
SPL例程由开始语句,语句块,结束语句组成。 SPL例程根据是否需要返回值,分为存储过程和函数。 语句块由SQL和SPL语句组成。
存储过程
语法
create procedure proc_name(param1 data_type1, param2 data_type2, ...)
spl_code;
end procedure;
函数
语法
create function func_name(param1 data_type1, param2 data_type2, ...)
returning data_type1 [as id1], data_type2 [as id2], ...
spl_code;
return val1, val2, ... [with resume];
end function;
语法
变量声明
语法
create procedure proc_name(param1 data_type1, param2 data_type2, ...) spl_code; end procedure; define m, n int; define global i int default 1; |
变量赋值
语法
let var = value; let var1, var2,... = val1, val2, ...; let var1, var2, ... = function(args1, args2, ...); let var1, var2, ... = (select col1, col2, ... from table_name); |
条件
语法
case expr when val_1 then code_1 [when val_2 then code_2 ...] else code_n end case; |
循环
GOTO
语法
<<lbl_goto>> spl_code; if expr then goto lbl_goto; end if; |
LOOP
语法

loop if expr then exit; end if; end loop; loop exit when expr; end loop; |
FOR/FOREACH
语法
for i in (start_val to end_val) loop spl_code; end loop; for i in (start_val to end_val) spl_code; end for; foreach select col1, col2,... into var1, var2,... from table_name spl_code; end foreach; |
WHILE
语法
while expr loop spl_code; end loop; while expr spl_code; end while; |
异常处理
语法
on exception [in (...)] set sql_err_num[,isam_err_num] spl_code; end exception [with resume]; |




