db2數據庫存儲過程入門3

例5:
--在存儲過程中聲明變量
--在存儲過程中建立臨時表
create procedure test9(in sid integer , out result integer)
language sql
begin

 declare a integer;
 --global是全局的temporary是臨時的,session本次會話
 --翻譯下就是:在本次會話中創建一個全局的臨時表,表名dtdoctype
 --注意:
 --臨時表的字段要用()括起來,每個字段先聲明字段名,再空格,再聲明字段類型,
 --臨時表的各個字段直接用逗號(,)隔開,最後一個字段後面不需要寫逗號。
 --臨時表的最後必須寫分號(;)表示建表結束
 --臨時表用完,在存儲過程結束之前,要刪除臨時表
 declare global temporary table session.dtdoctype
 (
  id integer,
  parentid integer,
  name varchar(300)
 );
 
 set result = 0;
 set a = sid;
 --將從表dtdoctype查詢出的數據保存到臨時表session.dtdoctype中;
 --注意:從表dtdoctype查詢出的字段(類型和數量和順序)要和臨時表session.dtdoctype中一樣。
 insert into session.dtdoctype select id,parentid,name from dtdoctype where parentid = a;
 --查詢臨時表session.dtdoctype中的數量。
 select count(*) into result from session.dtdoctype;
 
 drop table session.dtdoctype;
end;
------------------------------------------------------------------
create procedure test10(in sid integer , out result varchar(10000))
language sql
begin

 declare a integer;
 --global是全局的temporary是臨時的,session本次會話
 --翻譯下就是:在本次會話中創建一個全局的臨時表,表名dtdoctype
 --注意:
 --臨時表的字段要用()括起來,每個字段先聲明字段名,再空格,再聲明字段類型,
 --臨時表的各個字段直接用逗號(,)隔開,最後一個字段後面不需要寫逗號。
 --臨時表的最後必須寫分號(;)表示建表結束
 --臨時表用完,在存儲過程結束之前,要刪除臨時表
 declare global temporary table session.dtdoctype
 (
  id integer,
  parentid integer,
  name varchar(300)
 );
 
 set result = '';
 set a = sid;
 --將從表dtdoctype查詢出的數據保存到臨時表session.dtdoctype中;
 --注意:從表dtdoctype查詢出的字段(類型和數量和順序)要和臨時表session.dtdoctype中一樣。
 insert into session.dtdoctype select id,parentid,name from dtdoctype where parentid = a;
 --查詢臨時表session.dtdoctype中的的第一條數據的字段name。
 select name into result from session.dtdoctype fetch first row only;
 
 drop table session.dtdoctype;
 
end;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章