DB2批量執(zhí)行SQL腳本的實(shí)現(xiàn)
下面為您介紹的是DB2批量執(zhí)行SQL腳本的實(shí)現(xiàn)方法,如果您在DB2批量執(zhí)行方面遇到過(guò)類似的問(wèn)題的話,不妨一看,相信對(duì)您學(xué)習(xí)DB2批量執(zhí)行方面會(huì)有所幫助。
環(huán)境:
Windows系統(tǒng)
DB2客戶端或者服務(wù)端
一、準(zhǔn)備工作
運(yùn)行db2cmd或者db2cw打開(kāi)DB2命令行處理器
進(jìn)入SQL腳本存放目錄
用db2 connect to <dbname> user <username> using <password> 命令連接數(shù)據(jù)庫(kù)
用db2 set current schema <schema_name> 設(shè)置當(dāng)前的SCHEMA,這個(gè)SCHEMA可以是未創(chuàng)建的,DB2會(huì)自動(dòng)創(chuàng)建。
二、執(zhí)行不同類型的SQL
1、在命令行執(zhí)行簡(jiǎn)單SQL命令
db2 <SQL語(yǔ)句內(nèi)容>
2、在命令行執(zhí)行SQL腳本文件
db2 -td; -cf <SQL腳本文件路徑> -l <輸出日志文件路徑>
說(shuō)明:-td; 指定語(yǔ)句結(jié)束標(biāo)志。因?yàn)橐话鉙QL都是以分號(hào)結(jié)尾,所以就寫成“-td;”。
-l <輸出日志文件路徑> 是可選的。
3、在命令行執(zhí)行DB2 存儲(chǔ)過(guò)程文件
db2 -td@ -f <SQL過(guò)程文件路徑> -l <輸出日志文件路徑>
說(shuō)明:-td; 指定語(yǔ)句結(jié)束標(biāo)志。因?yàn)橐话鉙QL過(guò)程都是以@結(jié)尾,所以就寫成“-td@”。
-l <輸出日志文件路徑> 是可選的。
三、寫批處理腳本
批處理腳本無(wú)非就是把命令寫在一起,保存為bat文件,執(zhí)行即可。
在寫批處理之前,先回顧一下DB2命令選項(xiàng):
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。
選項(xiàng) 描述 缺省設(shè)置
------ ---------------------------------------- ---------------
-a 顯示 SQLCA OFF
-c 自動(dòng)落實(shí) ON
-d 檢索并顯示 XML 聲明 OFF
-e 顯示 SQLCODE/SQLSTATE OFF
-f 讀取輸入文件 OFF
-i 顯示 XML 數(shù)據(jù)并帶有縮進(jìn) OFF
-l 將命令記錄到歷史記錄文件中 OFF
-m 顯示受影響的行數(shù) OFF
-n 除去換行字符 OFF
-o 顯示輸出 ON
-p 顯示 db2 交互式提示符 ON
-q 保留空格和換行符 OFF
-r 將輸出報(bào)告保存到文件 OFF
-s 在命令出錯(cuò)時(shí)停止執(zhí)行 OFF
-t 設(shè)置語(yǔ)句終止字符 OFF
-v 回傳當(dāng)前命令 OFF
-w 顯示 FETCH/SELECT 警告消息 ON
-x 不打印列標(biāo)題 OFF
-z 將所有輸出保存到輸出文件 OFF
注意:
使用 DB2OPTIONS 環(huán)境變量定制選項(xiàng)缺省值。
緊跟選項(xiàng)字母后的減號(hào)(-)使該選項(xiàng)關(guān)閉。
使用 UPDATE COMMAND OPTIONS 更改選項(xiàng)設(shè)置(以交互式或
文件輸入方式)。
根據(jù)命令參數(shù)創(chuàng)建批處理文件xxx.bat:
rem -- 連接數(shù)據(jù)庫(kù)
db2 connect to <dbname> user <username> using <password>
rem -- 設(shè)置SCHEMA
db2 set current schema <schema_name>
rem -- 執(zhí)行SQL腳本列表
db2 -td; -cf <SQL腳本文件路徑> -l <輸出日志文件路徑>
rem -- 執(zhí)行SQL過(guò)程列表
db2 -td@ -f <SQL過(guò)程文件路徑> -l <輸出日志文件路徑>
注意:<SQL過(guò)程文件路徑>可以是絕對(duì)路徑也可以是相對(duì)路徑。
四、執(zhí)行批處理
運(yùn)行db2cmd或者db2cw打開(kāi)DB2命令行處理器。
如果<SQL過(guò)程文件路徑>和<SQL腳本文件路徑>為絕對(duì)路徑,則可以直接命令行執(zhí)行 xxx
如果<SQL過(guò)程文件路徑>和<SQL腳本文件路徑>為相對(duì)路徑,則需要進(jìn)入適當(dāng)?shù)哪夸洠贿吥茉诖四夸浵抡业脚幚?,然后?zhí)行 xxx
AIX:
db2 -tvf 文件名.sql
【編輯推薦】