程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2編程的正確應用程序

DB2編程的正確應用程序

編輯:DB2教程

以下的文章主要描述的是DB2編程,我們首先是從建存儲過程時Create 後一定不要用TAB鍵開始對其進行講述的,如果你對DB2編程,心存好奇的話,以下的文章將會揭開它的神秘面紗。

1.1 建存儲過程時Create 後一定不要用TAB鍵

  1. 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 從數據表中取指定前幾條記錄

  1. select * from tb_market_code fetch first 1 rows only  

但下面這種方式不允許

  1. select market_code into v_market_code   
  2. from tb_market_code fetch first 1 rows only;   

選第一條記錄的字段到一個變量以以下方式代替

  1. declare v_market_code char(1);   
  2. declare cursor1 cursor for select market_code from tb_market_code   
  3. fetch first 1 rows only for update;   
  4. open cursor1;   
  5. fetch cursor1 into v_market_code;   
  6. close cursor1;   

1.4 游標的使用

注意commit和rollback

使用游標時要特別注意如果沒有加with hold 選項,在Commit和Rollback時,該游標將被關閉。Commit 和Rollback有很多東西要注意。特別小心

游標的兩種定義方式

一種為

  1. declare continue handler for not found   
  2. begin   
  3. set v_notfound = 1;   
  4. end;   
  5. declare cursor1 cursor with hold for select market_code from tb_market_code for update;   
  6. open cursor1;   
  7. set v_notfound=0;   
  8. fetch cursor1 into v_market_code;   
  9. while v_notfound=0 Do   
  10. --work   
  11. set v_notfound=0;   
  12. fetch cursor1 into v_market_code;   
  13. end while;   
  14. close cursor1;   

這種方式使用起來比較復雜,但也比較靈活。特別是可以使用with hold 選項。如果循環內有commit或rollback 而要保持該cursor不被關閉,只能使用這種方式以上的相關內容就是對DB2編程序技巧部分內容的介紹,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved