SQL批處理腳本在DB2中的執(zhí)行
本文將為您介紹在DB2中批量執(zhí)行SQL腳本,包括準備工作、執(zhí)行不同類型的SQL、寫批處理腳本等一系列的步驟,供您參考,希望能對您有所幫助。
環(huán)境:
Windows系統(tǒng)
DB2客戶端或者服務端
一、準備工作
運行db2cmd或者db2cw打開DB2命令行處理器
進入SQL腳本存放目錄
用db2 connect to <dbname> user <username> using <password> 命令連接數(shù)據(jù)庫
用db2 set current schema <schema_name> 設置當前的SCHEMA,這個SCHEMA可以是未創(chuàng)建的,DB2會自動創(chuàng)建。#p#
二、執(zhí)行不同類型的SQL
1、在命令行執(zhí)行簡單SQL命令
db2 <SQL語句內容>
2、在命令行執(zhí)行SQL腳本文件
db2 -td; -cf <SQL腳本文件路徑> -l <輸出日志文件路徑>
說明:-td; 指定語句結束標志。因為一般SQL都是以分號結尾,所以就寫成“-td;”。
-l <輸出日志文件路徑> 是可選的。
3、在命令行執(zhí)行DB2 存儲過程文件
db2 -td@ -f <SQL過程文件路徑> -l <輸出日志文件路徑>
說明:-td; 指定語句結束標志。因為一般SQL過程都是以@結尾,所以就寫成“-td@”。
-l <輸出日志文件路徑> 是可選的。 #p#
三、寫批處理腳本
批處理腳本無非就是把命令寫在一起,保存為bat文件,執(zhí)行即可。
在寫批處理之前,先回顧一下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#p#
-i 顯示 XML 數(shù)據(jù)并帶有縮進 OFF
-l 將命令記錄到歷史記錄文件中 OFF
-m 顯示受影響的行數(shù) OFF
-n 除去換行字符 OFF
-o 顯示輸出 ON
-p 顯示 db2 交互式提示符 ON
-q 保留空格和換行符 OFF
-r 將輸出報告保存到文件 OFF
-s 在命令出錯時停止執(zhí)行 OFF
-t 設置語句終止字符 OFF
-v 回傳當前命令 OFF
-w 顯示 FETCH/SELECT 警告消息 ON
-x 不打印列標題 OFF
-z 將所有輸出保存到輸出文件 OFF
注意:
使用 DB2OPTIONS 環(huán)境變量定制選項缺省值。#p#
緊跟選項字母后的減號(-)使該選項關閉。
使用 UPDATE COMMAND OPTIONS 更改選項設置(以交互式或
文件輸入方式)。
根據(jù)命令參數(shù)創(chuàng)建批處理文件xxx.bat:
rem -- 連接數(shù)據(jù)庫
db2 connect to <dbname> user <username> using <password>
rem -- 設置SCHEMA
db2 set current schema <schema_name>
rem -- 執(zhí)行SQL腳本列表
db2 -td; -cf <SQL腳本文件路徑> -l <輸出日志文件路徑>
rem -- 執(zhí)行SQL過程列表
db2 -td@ -f <SQL過程文件路徑> -l <輸出日志文件路徑>
注意:<SQL過程文件路徑>可以是絕對路徑也可以是相對路徑。
四、執(zhí)行批處理
運行db2cmd或者db2cw打開DB2命令行處理器。
如果<SQL過程文件路徑>和<SQL腳本文件路徑>為絕對路徑,則可以直接命令行執(zhí)行 xxx
如果<SQL過程文件路徑>和<SQL腳本文件路徑>為相對路徑,則需要進入適當?shù)哪夸洠贿吥茉诖四夸浵抡业脚幚恚缓髨?zhí)行 xxx