一、使用样例
CREATE PROCEDURE "LIMS"."DEMO03"
(
in in_name varchar(10),
in in_creditcard varchar(10)
)
SPECIFIC DEMO03
LANGUAGE SQL
NOT DETERMINISTIC
EXTERNAL ACTION
MODIFIES SQL DATA
begin
declare c varchar(10) default null;
select name into c from LIMS.USER_TEST where in_creditcard =creditcard;
if (c is not null) then
update LIMS.USER_TEST set name=in_name where in_creditcard =creditcard;
else
insert into LIMS.USER_TEST values(in_name,in_creditcard);
end if;
end
二、存储过程的解释说明
CREATE PROCEDURE [Schema].[PROCEDURE_NAME] //指定存储过程的Schemas和存储过程的名字;
(
IN/OUT/INOUT PARAMETER1 DATA_TYPE1 ,//指定存储存储过程的输入或者输出的参数,以及数据类型;
IN/OUT/INOUT PARAMETER2 DATA_TYPE2 ,//其中 IN/OUT/INOUT 代表(输入参数/输出参数/既能输出一个参数又能输出一个参数);
……
)
SPECIFIC AAAAAA //存储过程的别名,一般可以和存储过程保持一致;
LANGUAGE SQL //指定用纯SQL编写存储过程;
NOT DETERMINISTIC //表示存储过程是非动态的;
EXTERNAL ACTION //表示存储过程可以执行一些不通过数据库管理器而改变数据库状态的活动;
MODIFIES SQL DATA //表示存储过程可以执行任何SQL语句;
BEGIN //标识存储过程的主体的开始;
…………
…………
…………
………… //具体的SQL逻辑;
…………
…………
…………
END //标识存储过程的主体结束;(注意:最后END 这里不加分号!不加分号!不加分号!)
三、存储过程的调用方法
命令调用:
@CALL [Schema].[PROCEDURE_NAME](PARAMETER1,PARAMETER2,……);
示 例:
@call LIMS.DEMO03('zhangsan', '123456');