DB2程式設計序技巧

2021-09-05 14:54:53 字數 1630 閱讀 6267

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 修改游...