プログラマーを職業としてます。 Flex,Air,C#,Oracle,PHPの言語ノウハウを中心に情報発信していきます


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ならもっと進化しているかもしれません。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です