DB2存儲過程入門(一)
????? 首先,打開DB2開發中心,新建項目后,連接上指定的數據庫。右鍵點擊新建存儲過程,可以直接新建,也可以使用向導建立。建好后就如下所視:
CREATE PROCEDURE ERPT1104.PROCEDURE1 (? )
------------------------------------------------------------------------
-- SQL 存儲過程
------------------------------------------------------------------------
P1: BEGIN
END P1??????
??????? 這樣就是建立好了一個存儲過程。其中ERPT1104.PROCEDURE1 中‘ERPT1104’為數據庫模式名,PROCEDURE1 為存儲過程名稱,可以自行修改。(? )這里面為參數,如果需要傳入參數或者傳出參數,就需要寫了,格式為:In?a varchar(32) ,Out b varchar(32),InOut c varchar(32)此處In,Out,InOut為參數模式。a,b,c為參數名稱,varchar(32)為參數類型。
??????? 然后我們可以開始寫具體的內容了。當然是在BEGIN下面開始寫了。
一般來說,都是先定義變量。先講簡單的查詢。
declare m varchar(32);
select name into m from custom where?id=a;
這個意思就是定義個變量m,根據id值從custom表中查出name值賦給變量m,此處的a是從外面傳過來的參數值。注意,此處查到的數據僅一條時在這樣使用。如果是多條,就需要使用游標了,那在下節在說。本節不考慮。
這樣,我們得到了變量m的值,如果我們想自己定義變量的值,那就可以:
set m='jiao';
如果我們想執行insert,update。
那就象SQL一樣寫就可以了。比如:
insert into custom?values(m);
update custom set name=m where id=a;
如果用戶想進行大量的數據計算,可以自行體驗下,基本方法就是這樣。
當然還有簡單判斷了,下面我們來說IF,WHILE的用法
語言都學過不少了,這里就講下在DB2下是什么格式的:
if a='0' then
select * from custom;
else
select name from custom;
end if;
while a='0'?do
select * from custom;
end while;
注意使用while一定不能進入死循環中。條件一定要寫對。
到次,你應該會進行一般的操作了。
??
CREATE PROCEDURE ERPT1104.PROCEDURE1 (? )
------------------------------------------------------------------------
-- SQL 存儲過程
------------------------------------------------------------------------
P1: BEGIN
END P1??????
??????? 這樣就是建立好了一個存儲過程。其中ERPT1104.PROCEDURE1 中‘ERPT1104’為數據庫模式名,PROCEDURE1 為存儲過程名稱,可以自行修改。(? )這里面為參數,如果需要傳入參數或者傳出參數,就需要寫了,格式為:In?a varchar(32) ,Out b varchar(32),InOut c varchar(32)此處In,Out,InOut為參數模式。a,b,c為參數名稱,varchar(32)為參數類型。
??????? 然后我們可以開始寫具體的內容了。當然是在BEGIN下面開始寫了。
一般來說,都是先定義變量。先講簡單的查詢。
declare m varchar(32);
select name into m from custom where?id=a;
這個意思就是定義個變量m,根據id值從custom表中查出name值賦給變量m,此處的a是從外面傳過來的參數值。注意,此處查到的數據僅一條時在這樣使用。如果是多條,就需要使用游標了,那在下節在說。本節不考慮。
這樣,我們得到了變量m的值,如果我們想自己定義變量的值,那就可以:
set m='jiao';
如果我們想執行insert,update。
那就象SQL一樣寫就可以了。比如:
insert into custom?values(m);
update custom set name=m where id=a;
如果用戶想進行大量的數據計算,可以自行體驗下,基本方法就是這樣。
當然還有簡單判斷了,下面我們來說IF,WHILE的用法
語言都學過不少了,這里就講下在DB2下是什么格式的:
if a='0' then
select * from custom;
else
select name from custom;
end if;
while a='0'?do
select * from custom;
end while;
注意使用while一定不能進入死循環中。條件一定要寫對。
到次,你應該會進行一般的操作了。
??