DB2 SQL腳本批量執行是我們在使用DB2數據庫時經常要用到的操作,那麼DB2 SQL腳本批量執行應該如何實現呢?閱讀下文,您就可以找到答案。
DB2 SQL腳本批量執行:
環境:
Windows系統
DB2客戶端或者服務端
一、准備工作
運行db2cmd或者db2cw打開DB2命令行處理器
進入SQL腳本存放目錄
用db2 connect to <dbname> user <username> using <password> 命令連接數據庫
用db2 set current schema <schema_name> 設置當前的SCHEMA,這個SCHEMA可以是未創建的,DB2會自動創建。
二、執行不同類型的SQL
1、在命令行執行簡單SQL命令
db2 <SQL語句內容>
2、在命令行執行SQL腳本文件
db2 -td; -cf <SQL腳本文件路徑> -l <輸出日志文件路徑>
說明:-td; 指定語句結束標志。因為一般SQL都是以分號結尾,所以就寫成“-td;”。
-l <輸出日志文件路徑> 是可選的。
3、在命令行執行DB2 存儲過程文件
db2 -td@ -f <SQL過程文件路徑> -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 <dbname> user <username> using <password>
rem -- 設置SCHEMA
db2 set current schema <schema_name>
rem -- 執行SQL腳本列表
db2 -td; -cf <SQL腳本文件路徑> -l <輸出日志文件路徑>
rem -- 執行SQL過程列表
db2 -td@ -f <SQL過程文件路徑> -l <輸出日志文件路徑>
注意:<SQL過程文件路徑>可以是絕對路徑也可以是相對路徑。
四、執行批處理
運行db2cmd或者db2cw打開DB2命令行處理器。
如果<SQL過程文件路徑>和<SQL腳本文件路徑>為絕對路徑,則可以直接命令行執行 xxx
如果<SQL過程文件路徑>和<SQL腳本文件路徑>為相對路徑,則需要進入適當的目錄,一邊能在此目錄下找到批處理,然後執行 xxx
DB2在線導出的方法
DB2 Merge語句的用法
DB2流程控制子句一覽
深入探討DB2表連接原理
幾種常用的DB2循環用法