1 db2程式設計
1.1 建儲存過程時create 後一定不要用tab鍵
create procedure
的create後只能用空格,而不可用tab健,否則編譯會通不過。
切記,切記。
1.2 使用臨時表
要注意,臨時表只能建在user tempory tables space 上,如果database只有system tempory table space是不能建臨時表的。
另外,db2的臨時表和sybase及oracle的臨時表不太一樣,db2的臨時表是在乙個session內有效的。所以,如果程式有多執行緒,最好不要用臨時表,很難控制。
建臨時表時最好加上 with replace選項,這樣就可以不顯示的drop 臨時表,建臨時表時如果不加該選項而該臨時表在該session內已建立且沒有drop,這時會發生錯誤。
1.3 從資料表中取指定前幾條記錄
select * from tb_market_code fetch first 1 rows only
但下面這種方式不允許
select market_code into v_market_code
from tb_market_code fetch first 1 rows only;
選第一條記錄的字段到乙個變數以以下方式代替
declare v_market_code char(1);
declare cursor1 cursor for select market_code from tb_market_code
fetch first 1 rows only for update;
open cursor1;
fetch cursor1 into v_market_code;
close cursor1;
1.4 游標的使用
注意commit和rollback
使用游標時要特別注意如果沒有加with hold 選項,在commit和rollback時,該游標將被關閉。commit 和rollback有很多東西要注意。特別小心
游標的兩種定義方式
一種為
declare continue handler for not found
begin
set v_notfound = 1;
end;
declare cursor1 cursor with hold for select market_code from tb_market_code for update;
open cursor1;
set v_notfound=0;
fetch cursor1 into v_market_code;
while v_notfound=0 do
--work
set v_notfound=0;
fetch cursor1 into v_market_code;
end while;
close cursor1;
這種方式使用起來比較複雜,但也比較靈活。特別是可以使用with hold 選項。如果迴圈內有commit或rollback 而要保持該cursor不被關閉,只能使用這種方式。
DB2程式設計序技巧 一
1.1 建儲存過程時create 後一定不要用tab鍵 create procedure 的create後只能用空格,而不可用tab健,否則編譯會通不過.切記,切記。1.2 使用臨時表 要注意,臨時表只能建在user tempory tables space 上,如果database只有 syste...
DB2程式設計序技巧 二
1.6 類似charindex查詢字元在字串中的位置 locate y dfdasfay 查詢 y 在 dfdasfay 中的位置。1.7 類似datedif計算兩個日期的相差天數 days date 2001 06 05 days date 2001 04 01 days 返回的是從 0001 0...
DB2程式設計序技巧 一
正在看的db2教程是dcvhllg db2程式設計序技巧 一 1 db2程式設計 1.1 建儲存過程時create 後一定不要用tab鍵 3 1.2 使用臨時表 3 1.3 從資料表中取指定前幾條記錄 3 1.4 游標的使用 4 注意commit和rollback 4 游標的兩種定義方式 4 修改游...