国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

DB2編程序小小技巧

瀏覽:106日期:2023-03-24 09:22:44
正在看的db2教程是:DB2編程序小小技巧。
一些編程經驗,與大家共享!

1 DB2編程
1.1 建存儲過程時CREATE 后一定不要用TAB鍵 3
1.2 使用臨時表 3
1.3 從數據表中取指定前幾條記錄 3
1.4 游標的使用 4
注意commit和rollback 4
游標的兩種定義方式 4
修改游標的當前記錄的方法 5
1.5 類似DECODE的轉碼操作 5
1.6 類似CHARINDEX查找字符在字串中的位置 5
1.7 類似DATEDIF計算兩個日期的相差天數 5
1.8 寫UDF的例子 5
1.9 創建含IDENTITY值(即自動生成的ID)的表 6
1.10 預防字段空值的處理 6
1.11 取得處理的記錄數 6
1.12 從存儲過程返回結果集(游標)的用法 6
1.13 類型轉換函數 8
1.14 存儲過程的互相調用 8
1.15 C存儲過程參數注意 8
1.16 存儲過程FENCE及UNFENCE 8
1.17 SP錯誤處理用法 9
1.18 IMPORT用法 9
1.19 VALUES的使用 9
1.20 給SELECT 語句指定隔離級別 10
1.21 ATOMIC及NOT ATOMIC區別 10
2 DB2編程性能注意 10
2.1 大數據的導表 10
2.2 SQL語句盡量寫復雜SQL 10
2.3 SQL  SP及C SP的選擇 10
2.4 查詢的優化(HASH及RR_TO_RS) 11
2.5 避免使用COUNT(*) 及EXISTS的方法 11
3 DB2表及SP管理 12
3.1 看存儲過程文本 12
3.2 看表結構 12
3.3 查看各表對SP的影響(被哪些SP使用) 12
3.4 查看SP使用了哪些表 12
3.5 查看FUNCTION被哪些SP使用 12
3.6 修改表結構 12
4 DB2系統管理 13
4.1 DB2安裝 13
4.2 創建DATABASE 14
4.3 手工做數據庫遠程(別名)配置 14
4.4 停止啟動數據庫實例 14
4.5 連接數據庫及看當前連接數據庫 14
4.6 停止啟動數據庫HEAD 15
4.7 查看及停止數據庫當前的應用程序 15
4.8 查看本INSTANCE下有哪些DATABASE 15
4.9 查看及更改數據庫HEAD的配置 16
4.9.1 改排序堆的大小 16
4.9.2 改事物日志的大小 16
4.9.3 出現程序堆內存不足時修改程序堆內存大小 16
4.10 查看及更改數據庫實例的配置 16
4.10.1 打開對鎖定情況的監控。 16
4.10.2 更改診斷錯誤捕捉級別 17
4.11 DB2環境變量 17
4.12 DB2命令環境設置 17
4.13 改變隔離級別 17
4.14 管理DB\INSTANCE的參數 18
4.15 升級后消除版本問題 18
4.16 查看數據庫表的死鎖 18
 
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不被關閉,只能使用這種方式。
&n

[1] [2] [3] [4] [5] [6] 下一篇

標簽: DB2
相關文章:
主站蜘蛛池模板: 久久精品国产亚洲片 | 欧美第一视频 | 91热国内精品永久免费观看 | 久久91精品国产一区二区 | 一级床上爽高清播放 | 国产手机在线视频放线视频 | 女让张开腿让男人桶视频 | 久久福利资源站免费观看i 久久高清精品 | 久久久综合久久 | 黄网在线观看免费 | 国产精品激情丝袜美女 | 亚洲精品中文字幕一区在线 | 三级毛片在线免费观看 | 女女同性一区二区三区四区 | 国产成年网站v片在线观看 国产成人aa在线视频 | 九九视频国产 | 色综合久久88色综合天天小说 | 国产免费网 | 中国一级特黄剌激爽毛片 | 欧美日韩在线视频不卡一区二区三区 | 亚洲高清视频在线观看 | 亚洲欧美日产综合在线看 | 亚洲精品久久久久久久福利 | 国产成人久久综合热 | 欧美一区二区三区在线视频 | 国产在线欧美精品 | 欧美成人3d动漫专区 | 国产精品一在线观看 | 中文字幕在线观看网址 | 中文字幕曰韩一区二区不卡 | 亚洲综合91社区精品福利 | 杨幂国产精品福利在线观看 | 亚洲资源在线 | 6080伦理久久亚洲精品 | 成人免费视频社区 | 国产人成 | 久久tv免费国产高清 | 欧美精品久久一区二区三区 | 手机看片1024久久精品你懂的 | 欧美日韩国产亚洲综合不卡 | 精品国产一区二区三区久 |