db2数据库存储过程入门7

例9:

--在存储过程中for循环进行遍历分所有直接子分类
--简单的测试下for循环
create procedure test15(in sid integer,out result varchar(2000))
language sql
begin

 set result = '';
 --使用for循环查询dtdoctype中的数字,拼接到结果集中
 for xunhuan as--xunhuan是循环的名称
      --as后面跟游标名或sql语句,不带分号
  select id,parentid,name from dtdoctype where parentid = sid
 do
    --条件,可以是sql表达式呀
    set result = name;
 END FOR;
 
end;
-------------------------------------------------------
--用于测试表dtdoctype
create table test_dtdoctype(
  id integer,
  parentid integer,
  name varchar(500)

);
drop procedure test16;
--在存储过程中for循环进行遍历分所有直接子分类
create procedure test16(in sid integer,out result varchar(2000))
language sql
begin
 
 set result = '';
 --使用for循环查询dtdoctype中的数字,拼接到结果集中
 for xunhuan as
  select id,parentid,name from dtdoctype where parentid = sid
 do
    set result = concat(result,strip(DIGITS(id)));
    set result = concat(result,strip(DIGITS(parentid)));
    set result = concat(result,name);
    set result = concat(result,';');
    --将查出来的数据,存入到实体表test_dtdoctype中
    insert into test_dtdoctype(id,parentid,name)values(id,parentid,name);
 END FOR;
 
end;

你可能感兴趣的:(db2数据库存储过程入门7)