本人前一段时间,做的项目涉及了一些关于db2数据库存储过程的内容,在此稍微总结一下,希望能帮助到刚学db2的同志们,如有不足之处,还望指出,大家相互提高。
存储过程:将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来。
以下简单的示例所使用的数据库都是建立在db2 9.5版本下,示例代码运行是在quest4.8版本运行
例1:
create procedure test1(out result integer)
language sql
begin
set result = 0;
end;
---------------------------------------------------------------
create procedure test2(out result varchar(100))
language sql
begin
set result = "helloworld";
end;
解释:
create procedure test1(out result integer)
--test1存储过程名称,
--out 表示这个存储过程有输出的值,
--reslut是存储过程输出的内容
--integer是存储过程输出内容的类型(字符串,数字)
language sql --存储过程用的什么语句,一般是sql语句
begin --存储过程开始
set result = 0; --执行逻辑
end; --存储过程结束
例1:是一个最简单的存储过程,不涉及复杂的逻辑。
在数据库中调用:call test1(?)
例2:
--该存储过程的功能是:获取表dtbasic有多少条数据
create procedure test3(out result integer)
language sql
begin
set result = 0;
--查询出dtbasic表中的数据数量赋值给 result;
select count(*) into result from dtbasic;
end;
------------------------------------------------
create procedure test4(out result varchar(300))
language sql
begin
set result = '';
--查询出dtbasic表中主键是152的字段title赋值给 result;
select title into result from dtbasic where id =152;
end;
在数据库中调用:call test3(?)