DB2コマンドをバッチ処理させるには
DB2の知識が必要な人はあまりいないかもしれませんが、自分のための覚書です。
少し古い情報です。
DB2のインポートコマンドなどをバッチで一気に実行したい場合、
バッチファイル内に”db2 import from c:\test.del …”等と書いたら動きそうに思えますが、
実際には動きません。
db2のコマンドはWindowsのコマンドプロンプトからは直接動かず、
db2cmdで起動するコマンドプロンプトとそっくりの黒い画面上でないと動かないのです。
じゃあどうすればよいのかというと、
バッチファイルにはdb2cmd db2 import from c:\test.del…”のように、
db2cmdを先に書いてその後にdb2コマンドを続けます。
ただ、これだと、DBコネクトがかけないので、
実行したいコマンドは別ファイルにしておき、db2から呼び出すようにします。
例えば、
import.txt
connect to testdb; import from c:\test1.del of del insert into test1; import from c:\test2.del of del insert into test2; import from c:\test3.del of del insert into test3; connect reset;
というファイルを作成しておき、
db2cmd db2 -f import.txt
というように実行すると、import.txtの中身を全て実行してくれます。
また、別のやり方として、バッチファイル自体を呼び出す方法もあります。
import.bat
db2 connect to testdb db2 import from c:\test1.del of del insert into test1 db2 import from c:\test2.del of del insert into test2 db2 import from c:\test2.del of del insert into test3 db2 connect reset
というファイルを作成しておいて、
db2cmd import.bat
というように実行すれば上のやり方と同じ結果になります。
どちらが良いのかは、好みの問題ですが、
下のやり方だとコマンド実行時に引数を与えることができます。
与えた引数はimport.bat内で%1で拾うことができます。
※もしかしたらいまどきのDB2ならもっと進化しているかもしれません。
== ランキングに参加しています。ぜひクリックお願いします ==
プロジェクトファシリテーションとは 無線LANルータ AtermWR8370Nを激安購入しました