DB2の知識が必要な人はほとんどいないと思いますが、自分のための覚書です。
DB2のインポートコマンドなどを、バッチで一気に実行したい場合、バッチファイル内に"db2 import from c:\test.del ..."等と、書いたら動きそうに思えますが、実際には動きません。
db2のコマンドはWindowsのコマンドプロンプトからは直接動かず、db2cmdで起動するコマンドプロンプトとそっくりの黒い画面上でないと動かないのです。
じゃあどうすればよいのかというと、バッチファイルにはdb2cmd db2 import from c:\test.del..."のように、db2cmdを先に書いてその後にdb2コマンドを続けます。
ただ、これだと、DBコネクトがかけないので、実行したいコマンドは別ファイルにしておき、db2から呼び出すようにします。
例えば、
というファイルを作成しておき、
db2cmd db2 -f import.txt
というように実行すると、import.txtの中身を全て実行してくれます。
また、別のやり方として、バッチファイル自体を呼び出す方法もあります。
というファイルを作成しておいて、
db2cmd import.bat
というように実行すれば上のやり方と同じ結果になります。
どちらが良いのか分かりませんが、下のやり方だとコマンド実行時に引数を与えることができます。与えた引数はimport.bat内で%1で拾うことができます。
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で拾うことができます。