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

DB2編程序技巧 (五)

編輯:DB2教程
1.16 存儲過程fence及unfence
fence的存儲過程單獨啟用一個新的地址空間,而unfence的存儲過程和調用它的進程使用同一個地址空間。
一般而言,fence的存儲過程比較安全。
但有時一些特殊的要求,如要取調用者的pid,則fence的存儲過程會取不到,而只有unfence的能取到。

1.17 SP錯誤處理用法
如果在SP中調用其它的有返回值的,包括結果集、臨時表和輸出參數類型的SP,
DB2會自動發出一個SQLWarning。而在我們原來的處理中對於SQLWarning都
會插入到日志,這樣子最後會出現多條SQLCODE=0的警告信息。
處理辦法:
定義一個標志變量,比如DECLARE V_STATUS INTEGER DEFAULT 0,
在CALL SPNAME之後, SET V_STATUS = 1,
DECLARE CONTINUE HANDLER FOR SQLWARNING
BEGIN
IF V_STATUS <> 1 THEN
--警告處理,插入日志
SET V_STATUS = 0;
END IF;
END;
1.18 import用法
db2 import  from  gh1.out   of  DEL messages err.txt insert into  db2inst1.tb_dbf_match_ha

注意要加schma

1.19 values的使用
如果有多個 set  語句給變量付值,最好使用values語句,改寫為一句。這樣可以提高效率。
 
但要注意,values不能將null值付給一個變量。
values(null) into out_return_code;
這個語句會報錯的。


1.20 給select 語句指定隔離級別
select * from tb_head_stock_balance with ur
 
1.21 atomic及not atomic區別
atomic是將該部分程序塊指定為一個整體,其中任何一個語句失敗,則整個程序塊都相當於沒做,包括包含在atomic塊內的已經執行成功的語句也相當於沒做,有點類似於transaction。


2  DB2編程性能注意
2.1 大數據的導表
應該是export後再load性能更好,因為load不寫日志。
比select into 要好。

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