導出所有DB2存儲過程的四種方法
DB2存儲過程如果要全部導出的話,是否可行呢?答案是肯定的,下面就為您介紹四種導出所有DB2存儲過程的方法,希望對您學習DB2存儲過程方面能有所幫助。
1)從 DB2 的目錄表 SYSCAT.ROUTINES 中選取:
在 SYSCAT.ROUTINES 系統目錄表中,有一個名為 TEXT 的字段,其數據類型定義為 CLOB,長度為 2M(2097152 個字節),用于存放存儲過程的創建語句。為得到全部存儲過程的定義,可使用類似如下 SELECT 語句,并將定義輸出到一個文件中。
DB2 SELECT CHAR(ROUTINESCHEMA,20), CHAR(ROUTINENAME,20), TEXT FROM SYSCAT.ROUTINES ><輸出文件名>
此方法的缺陷是當text>32767時,導出的該條存儲過程是不完整的。
2)對于 v8.2 之后的 DB2,DB2LOOK 命令的 -e 選項中增加了對存儲過程的創建語句的提取,用戶通過執行:
db2look -d <數據庫名> -e -o <輸出文件名>
在命輸出文件中找到“存儲過程的 DDL 語句”段,從而獲得創建所有存儲過程的語句。
據說,db2 v8中 的db2look導出的存儲過程是不完整的
3)通過 GET ROUTINE 命令來完成:
由于 GET ROUTINE 只能在已知存儲過程名稱后,對單個存儲過程進行,因此需要分成兩個步驟來完成:
1. 獲取所有存儲過程的名稱:
DB2 SELECT CHAR(ROUTINESCHEMA,20) AS SCHEMA, CHAR(ROUTINENAME,20) AS NAME FROM SYSCAT.ROUTINES WHERE SUBSTR(VARCHAR(TEXT),1,16) = 'CREATE PROCEDURE' ><輸出文件名>
2. 根據輸出文件中存儲過程的名稱,分別對每個存儲過程執行如下操作,以便將完整的創建語句輸出到指定文件中:
DB2 GET ROUTINE INTO <輸出文件名> FROM PROCEDURE <存儲過程模式名>.<存儲過程名>
這個有點繁瑣
4)使用export:
db2 "EXPORT TO procudure.del OF del MODIFIED BY LOBSINFILE SELECT 'SET CURREN
責任編輯:任我行
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
深度報告 | 基于分類監管與當量協同的碳市場框架設計方案
2020-07-21碳市場,碳排放,碳交易 -
碳市場讓重慶能源轉型與經濟發展并進
2020-07-21碳市場,碳排放,重慶
-
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
2020年二季度福建省統調燃煤電廠節能減排信息披露
2020-07-21火電環保,燃煤電廠,超低排放
-
四川“專線供電”身陷違法困境
2019-12-16專線供電 -
我國能源替代規范法律問題研究(上)
2019-10-31能源替代規范法律 -
區域鏈結構對于數據中心有什么影響?這個影響是好是壞呢!