DB2 執行SQL檔案

2021-08-31 17:30:49 字數 1688 閱讀 2111

db2 執行sql檔案

首先是新建資料庫,可以使用control center(控制中心),也可以使用command line(命令列) ,不過對於本次新建,我更加願意使用command editor(命令列處理器)。

開啟之後,可以直接寫如下sql文:

create database mydb2

on 'd:'

using codeset ibm-eucjp

territory jp

collate using system;

好像on後面只識別到碟符,等成功以後,繼續開啟ce,在target裡選擇『mydb2』,其實就是執行了『connect to mydb2 ;』,到了這裡的目的是為了建立schema,而schema的概念即如每個家庭都有電視機,但是歸屬不同。

寫入如下sql:

create schema ut001 authorization mydb2;

create schema ut002 authorization mydb2;

說明:create schema 在當前資料庫裡輸入乙個新的模式。 該模式名將在當前資料庫裡現存的所有模式名中唯一。

至此,資料庫及schema都已經建立完畢,開始匯入建表的sql檔案了。

現在我們每就要開始執行建表檔案了。這時可以用db2 command line(命令視窗)

直接在ce中寫sql文,然後直接執行。而如果是ddl匯出sql文,再這樣乙個乙個執行的話,就會很煩惱的,此時,我建議使用批量處理,我們可以寫乙個bat檔案,放置於ibm\sqllib\bin 下:

db2 connect to mydb2

db2 set current schema ut001 /*修改當前模式(例項)為ut001,一般可以解決使用者名稱和例項不一致的情況*/

db2 -td@ -f commit_log.sql

db2 commit work

db2 terminate

其中特別注意,第一,如果不是多個schema,則可以不用第二行。第二,第三行中的引數-tvf,解釋如下,

-f 讀取輸入檔案

-t 設定語句終止字元

-v 回送當前命令

如果檔案中每個語句是直接以回車結尾,則用-vf即可,加上-t是表示沒條語句以「;」結尾。

commit 提交當前事務. 所有事務的更改都將為其他事務可見,而且保證當崩潰發生時的可持續性. commit work要讓所有變更永久化.

db2 terminate: db2 命令可以啟動命令列處理器。clp 包括前端程序(表示使用者介面)和後端程序,可以用它們來維護資料庫連線。每次 db2 呼叫都啟動新的前端程序;第一次 db2 呼叫要啟動後端程序。擁有相同父程序的所有前端程序都是由乙個後端程序提供服務的,因此它們共享乙個資料庫連線。quit 命令停止命令列處理器,但是不刪除關聯的後端程序;要刪除關聯的後端程序,需要發出 terminate 命令。建議在停止例項(stop database manager 或 db2stop)之前執行 terminate 命令;否則,後端程序會保持乙個不再可用的例項連線(attachment)。

下面更新下,我們在編寫sql檔案的時候,可以將連線db2的命令語句一同寫入到sql檔案中去,包括最後的提交當前事務,讓所有變更永久化命令,如果不是在db2伺服器上,而是在遠端db2客戶端上,我們連db2時還需加上使用者名稱和密碼 即db2連線命令要改為 connect to (資料庫名) user (使用者名稱) using (密碼)。

DB2執行sql指令碼

在實際生產中可能會拿到較多的建表sql語句,當這些sql語句存在於同乙個檔案中時,除了用資料庫工具執行檔案內容時,還可以直接在xhell中的linux環境下執行指令碼 使用下面的命令執行create.sql指令碼 db2 t v f script1.sql z script1.log 或 db2 t...

db2 指令碼 db2和 sql 類行指令碼執行

特別是專案公升級需要執行大量指令碼,所以執行資料指令碼變得很實用,很方便。在執行指令碼是時,必須鏈結資料庫,db2 connect to datbase name user user name using user pwd 然後跳轉指令碼磁磁碟儲存的為位置 d 執行資料庫指令碼 db2 tf tmi...

DB2執行指令碼

通過db2命令直接執行指令碼語句 db2 tvf x 檔名及路徑 eg db2 tvf e test.sql 命令解釋 s 在命令出錯時停止執行 t 設定語句終止字元 v 回送當前命令 f 讀取輸入檔案 t 為預設終止字元 各語句以 終止 通過 d也可以設定其它終止字元,如以 終止則相應命令為 db...