LoginSignup
6
8

More than 5 years have passed since last update.

DB2のSQL・DDLファイルをバッチファイルで実行する方法

Last updated at Posted at 2016-06-11

例えばWindowsローカル環境のテストで、DB2のテーブルを毎回Drop&Createするような場合、DDLファイルを用意しておき、db2コマンドを立ち上げて「db2 -tvf DDLファイル名」と打ち込めばよい。

しかし毎回打ち込むのも面倒なので、db2コマンド起動&ファイル読み込みバッチファイルを用意しておき、ダブルクリックだけで実行する方法。


例えば、以下のようなテーブルDrop&Create用のDDLファイルがあったとする。

DDLファイル名.ddl
connect to データソース名 user ユーザー名 using パスワード;

drop table テーブル名;
create table テーブル名(
    keycol char(10) not null
    valcol char(10)
);
alter table テーブル名 add constraint pk primary key (keycol);

quit;

上記DDLファイルと同じ場所に、以下のバッチファイルを配置し、拡張子を除くファイル名を同一にする(例えば「aaa.ddl」の場合、「aaa.bat」とする)。

DDL実行バッチ

DDLファイル名.bat
db2cmd /c db2 -tvf %~n0.ddl;

上記バッチファイルを実行すると、db2コマンドが立ち上がり、DDLが実行される。

このバッチファイルのいいところは、コピーしてファイル名をSQL・DDLファイルと同一にし、同じ場所に配置するだけで、バッチファイルの内容は書き変えることなく、SQLまたはDDLを実行できること。


なお、拡張子が.sqlのファイルを実行する場合は以下のようになる(拡張子がsqlになっただけ)。

SQL実行バッチ

SQLファイル名.bat
db2cmd /c db2 -tvf %~n0.sql;

SQL・DDL実行後にコマンドウィンドウを消さずに目チェックしたい場合は、db2cmd のあとの /c を消せばよい。

SQL実行バッチ(実行後にウィンドウを閉じない)

SQLファイル名.bat
db2cmd db2 -tvf %~n0.sql;

DDL実行バッチ(実行後にウィンドウを閉じない)

DDLファイル名.bat
db2cmd db2 -tvf %~n0.ddl;

以上

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8