導(dǎo)出所有DB2存儲(chǔ)過(guò)程的四種方法
DB2存儲(chǔ)過(guò)程如果要全部導(dǎo)出的話,是否可行呢?答案是肯定的,下面就為您介紹四種導(dǎo)出所有DB2存儲(chǔ)過(guò)程的方法,希望對(duì)您學(xué)習(xí)DB2存儲(chǔ)過(guò)程方面能有所幫助。
1)從 DB2 的目錄表 SYSCAT.ROUTINES 中選取:
在 SYSCAT.ROUTINES 系統(tǒng)目錄表中,有一個(gè)名為 TEXT 的字段,其數(shù)據(jù)類型定義為 CLOB,長(zhǎng)度為 2M(2097152 個(gè)字節(jié)),用于存放存儲(chǔ)過(guò)程的創(chuàng)建語(yǔ)句。為得到全部存儲(chǔ)過(guò)程的定義,可使用類似如下 SELECT 語(yǔ)句,并將定義輸出到一個(gè)文件中。
DB2 SELECT CHAR(ROUTINESCHEMA,20), CHAR(ROUTINENAME,20), TEXT FROM SYSCAT.ROUTINES ><輸出文件名>
此方法的缺陷是當(dāng)text>32767時(shí),導(dǎo)出的該條存儲(chǔ)過(guò)程是不完整的。
2)對(duì)于 v8.2 之后的 DB2,DB2LOOK 命令的 -e 選項(xiàng)中增加了對(duì)存儲(chǔ)過(guò)程的創(chuàng)建語(yǔ)句的提取,用戶通過(guò)執(zhí)行:
db2look -d <數(shù)據(jù)庫(kù)名> -e -o <輸出文件名>
在命輸出文件中找到“存儲(chǔ)過(guò)程的 DDL 語(yǔ)句”段,從而獲得創(chuàng)建所有存儲(chǔ)過(guò)程的語(yǔ)句。
據(jù)說(shuō),db2 v8中 的db2look導(dǎo)出的存儲(chǔ)過(guò)程是不完整的
3)通過(guò) GET ROUTINE 命令來(lái)完成:
由于 GET ROUTINE 只能在已知存儲(chǔ)過(guò)程名稱后,對(duì)單個(gè)存儲(chǔ)過(guò)程進(jìn)行,因此需要分成兩個(gè)步驟來(lái)完成:
1. 獲取所有存儲(chǔ)過(guò)程的名稱:
DB2 SELECT CHAR(ROUTINESCHEMA,20) AS SCHEMA, CHAR(ROUTINENAME,20) AS NAME FROM SYSCAT.ROUTINES WHERE SUBSTR(VARCHAR(TEXT),1,16) = 'CREATE PROCEDURE' ><輸出文件名>
2. 根據(jù)輸出文件中存儲(chǔ)過(guò)程的名稱,分別對(duì)每個(gè)存儲(chǔ)過(guò)程執(zhí)行如下操作,以便將完整的創(chuàng)建語(yǔ)句輸出到指定文件中:
DB2 GET ROUTINE INTO <輸出文件名> FROM PROCEDURE <存儲(chǔ)過(guò)程模式名>.<存儲(chǔ)過(guò)程名>
這個(gè)有點(diǎn)繁瑣
4)使用export:
db2 "EXPORT TO procudure.del OF del MODIFIED BY LOBSINFILE SELECT 'SET CURREN

- 相關(guān)閱讀
- 業(yè)務(wù)信息化
- 戰(zhàn)略規(guī)劃
- IT運(yùn)維與治理
-
對(duì)象存儲(chǔ)服務(wù)-構(gòu)架設(shè)計(jì)
-
2017年CPU:AMD和Intel都使出洪荒之力
2018-02-01洪荒 -
2018年為Web開(kāi)發(fā)人員推薦的Python框架
-
2017年CPU:AMD和Intel都使出洪荒之力
2018-02-01洪荒 -
2018年為Web開(kāi)發(fā)人員推薦的Python框架
-
IDC:數(shù)字化轉(zhuǎn)型呈現(xiàn)三大趨勢(shì)