自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DB2純SQL存儲過程入門的“通道”描述

數(shù)據(jù)庫
我們今天主要向大家描述的是DB2純SQL存儲過程入門的實踐方案,以及對其在實際操作中的背景與實際操作操作中要用到的代碼的描述。

以下的文章主要向大家講述的是DB2純SQL存儲過程入門的實踐方案,其實際的操作背景是本人現(xiàn)在在DB2 9.1數(shù)據(jù)庫做Birt應(yīng)用,需用寫DB2數(shù)據(jù)庫純SQL存儲過程,經(jīng)過多層嵌套循環(huán)查詢多個表,并返回一個最終的結(jié)果集(打開的游標(biāo))。

然后再在birt中直接調(diào)用以下就獲取了結(jié)果集的紀錄,并展示在頁面中。為此,我在網(wǎng)上搜索了很多資料,但是沒有一個完整的可以執(zhí)行的DB2存儲過程。研究好久了,終于寫出來了一個模板性的示例出來?,F(xiàn)在拿出來,和各位網(wǎng)友共同分享交流。

 

示例說明:先創(chuàng)建一個臨時表,并插入數(shù)據(jù),然后查詢臨時表,返回游標(biāo)。

create procedure testPrc()

-- 返回一個紀錄

 

dynamic result sets 1

 

 

-- DB2純SQL存儲過程

 

 

p1: begin

 

-- 定義一個全局臨時表tmp_hy

 

  1. declare global temporary table session.tmp_hy  
  2. (  
  3. dm varchar(10),  
  4. mc varchar(10)   

with replace -- 如果存在此臨時表,則替換

 

not logged; -- 不在日志里紀錄

 

 給臨時表插入三條數(shù)據(jù)

 

  1. insert into session.tmp_hy values('1','1');  
  2. insert into session.tmp_hy values('1','1');  
  3. insert into session.tmp_hy values('1','1');  
  4. p2: begin  

聲明游標(biāo)

 

  1. declare cursor1 cursor with return for  
  2. select * from session.tmp_hy;  

游標(biāo)對客戶機應(yīng)用程序保持打開

 

  1. open cursor1;  
  2. end p2;  
  3. end p1  

 

另:鑒于有人問到此例子怎么執(zhí)行,我是在集成開發(fā)環(huán)境里執(zhí)行的.運行存儲過程的方法很多,可以存在高級編程語言里調(diào)用,也可以在命令行調(diào)用,也可以在sql開發(fā)工具里調(diào)用,沒法一概而論,還有,這個游標(biāo),你要看到結(jié)果,需要逐條取出所有紀錄.這些都是其它方面的知識,你可以去別的地方補充.我這里怎么運行的,以及怎么處理的,為了避免誤導(dǎo)讀者,我還是不說了.下面我給出我調(diào)用此存儲過程得出的結(jié)果,如下圖:

1166756483234.png

下載 (1.76 KB)

2010-7-21 16:21

總結(jié):這個例子很簡單,但是很實用,可以作為一個DB2純SQL存儲過程的模板來用。完全操作的是臨時表,你在任何db2數(shù)據(jù)庫下都可以執(zhí)行,并查看結(jié)果。為了保持例子的簡潔易懂,我沒有設(shè)置輸入輸出參數(shù),這些參數(shù)和Oracle里,高級變成語言中函數(shù)的參數(shù)差不多,所以就寫了這個不帶參數(shù)的。

 

題外話:DB2 的存儲過程和函數(shù)與Oracle的差別太大,DB2存儲過程允許返回值,還可以設(shè)定返回值的數(shù)量,而Oracle的存儲過程是不允許返回值的;DB2的函數(shù)也可以返回值,也可以返回表,而Oracle返回比較隨意。

用DB2做開發(fā)是件很痛苦的事情,原因是沒有很好的開發(fā)工具,不像Oracle有 PL/SQL這樣強大的開發(fā)工具可用,但是DB2的性能比Oracle的好,海量T級別的數(shù)據(jù)庫尤為明顯。目前我用的是Quest Central For DB2 4.3,功能很弱,連自動彈出表的列名功能都沒有!DB2自帶的開發(fā)中心更爛,沒法用,shit!嚴重與IBM的品牌不相符合。不知道各位網(wǎng)友你們都在用什么開發(fā)工具呢?

【編輯推薦】

  1. DB2性能調(diào)優(yōu)中易出現(xiàn)的問題有哪些?
  2. DB2 多分區(qū)數(shù)據(jù)庫備份的正確操作流程演示
  3. 對DB2 增量備份的正確運用描述
  4. DB2***SQL性能調(diào)節(jié)技術(shù)經(jīng)典版
  5. 對DB2數(shù)據(jù)移動方法的正確解析

 

責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-08-05 10:42:33

DB2 拉鏈表存儲過程

2010-08-18 13:29:11

DB2存儲過程

2010-09-06 10:54:52

DB2 sql 存儲過

2010-11-03 10:35:45

DB2存儲過程

2010-08-04 09:50:35

DB2 9存儲過程

2010-09-06 10:43:15

DB2 SQL存儲過程

2010-11-03 10:46:49

DB2存儲過程

2010-11-03 10:26:22

DB2存儲過程

2010-08-31 15:39:25

DB2存儲過程

2010-08-25 09:56:02

DB2存儲過程

2010-08-18 14:10:38

DB2入門

2011-04-15 13:21:41

DB2翻頁存儲

2010-11-04 12:00:59

db2存儲過程

2010-09-06 14:20:25

DB2 V7

2010-08-05 14:50:23

DB2動態(tài)SQL

2010-08-05 10:20:29

DB2數(shù)據(jù)庫動態(tài)

2010-11-04 13:55:26

DB2 SQL腳本批量

2010-11-03 11:02:34

DB2存儲過程

2010-09-01 15:09:41

DB2動態(tài)游標(biāo)

2009-03-10 09:08:06

DB2存儲過程實施
點贊
收藏

51CTO技術(shù)棧公眾號