亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

DB2編程序技巧(1)

瀏覽:128日期:2023-03-24 09:22:34
正在看的db2教程是:DB2編程序技巧(1)。
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不被關閉,只能使用這種方式。

 另一種為 

pcursor1: for loopcs1 as  cousor1  cursor  as 

select  market_code  as market_code 

from tb_market_code 

for update 

do 

end for; 

這種方式的優點是比較簡單,不用(也不允許)使用open,fetch,close。 

但不能使用with  hold 選項。如果在游標循環內要使用commit,rollback則不能使用這種方式。如果沒有commit或rollback的要求,推薦使用這種方式(看來For這種方式有問題)。 

修改游標的當前記錄的方法 

update tb_market_code set market_code=’0’ where current of cursor1; 

不過要注意將cursor1定義為可修改的游標 

declare cursor1 cursor for select market_code from tb_market_code  

for update; 

for update 不能和GROUP BY、 DISTINCT、 ORDER BY、 FOR READ ONLY及UNION, EXCEPT, or INTERSECT但 UNION ALL除外)一起使用。 

1.5 類似decode的轉碼操作 

oracle中有一個函數  select decode(a1,’1’,’n1’,’2’,’n2’,’n3’) aa1 from 

db2沒有該函數,但可以用變通的方法 

select case a1  

when ’1’ then ’n1’  

when ’2’ then ’n2’  

else ’n3’ 

  end as aa1 from 

1.6 類似charindex查找字符在字串中的位置 

Locate(‘y","dfdasfay") 

查找"y" 在"dfdasfay"中的位置。 

1.7 類似datedif計算兩個日期的相差天數 

days(date(‘2001-06-05")) – days
標簽: DB2
相關文章:
主站蜘蛛池模板: 五月婷婷六月丁香 | 9久9久女女热精品视频免费观看 | 亚洲精品专区一区二区欧美 | 特级欧美| 亚洲一区播放 | 国产视频在线一区 | 国产一区二区在线观看视频 | 亚洲人视频在线观看 | 国产成人高清精品免费观看 | 123456成年免费视频 | 免费看的黄色小视频 | 114一级毛片免费 | 国产免费精彩视频 | 一级aa 毛片高清免费看 | 国产精品福利午夜在线观看 | 噜噜噜福利视频在线观看 | 天天综合久久 | 久久久这里只有精品加勒比 | 日韩欧美一区二区不卡 | 天天操夜夜草 | 中文字幕欧美日韩在线不卡 | 免费一级毛片在级播放 | 国产精品午夜性视频网站 | 国产在线xvideos | 国产麻豆视频免费观看 | 性色a v 一区 | 成人免费无毒在线观看网站 | 成人黄色在线播放 | 久久久久久久亚洲精品一区 | 特黄特黄特色大片免费观看 | 国产精品19禁在线观看2021 | 污视频免费网站 | 中国特级黄色片 | 国产美女一区二区在线观看 | 韩国啪啪高清网站 | 亚洲精品色婷婷在线影院麻豆 | 国产三级精品三级在线专区91 | 亚洲国产一区在线二区三区 | 国产乱码精品一区二区 | 2020久久精品国产免费 | 久亚洲精品不子伦一区 |