DB2批量執行SQL指令碼的實現

47328983發表於2013-01-24

下面為您介紹的是DB2批量執行SQL指令碼的實現方法,如果您在DB2批量執行方面遇到過類似的問題的話,不妨一看,相信對您學習DB2批量執行方面會有所幫助。

環境:

Windows系統

DB2客戶端或者服務端

一、準備工作

執行db2cmd或者db2cw開啟DB2命令列處理器

進入SQL指令碼存放目錄

用db2 connect to user using 命令連線資料庫

用db2 set current schema 設定當前的SCHEMA,這個SCHEMA可以是未建立的,DB2會自動建立。

二、執行不同型別的SQL

1、在命令列執行簡單SQL命令

db2

2、在命令列執行SQL指令碼檔案

db2 -td; -cf -l

說明:-td; 指定語句結束標誌。因為一般SQL都是以分號結尾,所以就寫成“-td;”。

-l 是可選的。

3、在命令列執行DB2 儲存過程檔案

db2 -td@ -f -l

說明:-td; 指定語句結束標誌。因為一般SQL過程都是以@結尾,所以就寫成“-td@”。

-l 是可選的。

三、寫批處理指令碼

批處理指令碼無非就是把命令寫在一起,儲存為bat檔案,執行即可。

在寫批處理之前,先回顧一下DB2命令選項:

C:"IBM"SQLLIB"BIN>db2 ? options

db2 [option ...] [db2-command | sql-statement |

[? [phrase | message | sqlstate | class-code]]]

option:-a、-c、-d、-e{c|s}、-finfile、-i、-lhistfile、-m、-n、-o、

-p、-q、-rreport、-s、-t、-td;、-v、-w、-x 和 -zoutputfile。


選項    描述                                      預設設定

------ ---------------------------------------- ---------------

-a    顯示 SQLCA                                OFF

-c    自動落實                                  ON

-d    檢索並顯示 XML 宣告                       OFF

-e    顯示 SQLCODE/SQLSTATE                     OFF

-f    讀取輸入檔案                              OFF

-i    顯示 XML 資料並帶有縮排                   OFF

-l    將命令記錄到歷史記錄檔案中                OFF

-m    顯示受影響的行數                          OFF

-n    除去換行字元                              OFF

-o    顯示輸出                                  ON

-p    顯示 db2 互動式提示符                     ON

-q    保留空格和換行符                          OFF

-r    將輸出報告儲存到檔案                      OFF

-s    在命令出錯時停止執行                      OFF

-t    設定語句終止字元                          OFF

-v    回傳當前命令                              OFF

-w    顯示 FETCH/SELECT 警告訊息                ON

-x    不列印列標題                              OFF

-z    將所有輸出儲存到輸出檔案                  OFF

注意:

使用 DB2OPTIONS 環境變數定製選項預設值。

緊跟選項字母后的減號(-)使該選項關閉。

使用 UPDATE COMMAND OPTIONS 更改選項設定(以互動式或

檔案輸入方式)。

根據命令引數建立批處理檔案xxx.bat:

rem     -- 連線資料庫

db2 connect to user using

rem     -- 設定SCHEMA

db2 set current schema

rem     -- 執行SQL指令碼列表

db2 -td; -cf -l

rem     -- 執行SQL過程列表

db2 -td@ -f -l

注意:可以是絕對路徑也可以是相對路徑。

四、執行批處理

執行db2cmd或者db2cw開啟DB2命令列處理器。

如果為絕對路徑,則可以直接命令列執行 xxx

如果為相對路徑,則需要進入適當的目錄,一邊能在此目錄下找到批處理,然後執行 xxx

AIX:

db2 -tvf 檔名.sql

來源:http://database.51cto.com/art/201011/232292.htm

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/241379/viewspace-753237/,如需轉載,請註明出處,否則將追究法律責任。

相關文章