【DB2】バッチを使ってコマンドプロンプト上でDB2コマンド実施
想定環境:
- DB2がインストールされている
- .batでコマンドプロンプト上からDB2コマンドを実施する必要がある
・・・後者が必要な環境はそうそう無いと思うが、必要だったのでその時のコマンドを記載する。
ウィンドウズのコマンドプロンプトから直接起動出来ない、という噂があるが、以下の手順で実施すれば出来る様になる。
大まかな手順:
- DB2CLP情報を書き出す
- DB2CLP情報を環境変数に書き込み、必要なDB2コマンドを実施
以下、詳細な説明。
具体的な手順:
1. DB2CLP情報を書き出す
コマンドプロンプトでdb2を起動するためには、環境変数DB2PATHとDB2CLPが必要らしい。
DB2PATHには、C:\Program Files\IBM\SQLLIBといったインストール先を指定すればいい為、一度設定すれば恒久的に使用出来る。
しかし、DB2CLPはクライアントを区別するための数値がセットされる為、一度設定しても再度クライアントを立ち上げると数値が変わってしまう。なので、今立ち上がっているクライアントのDB2CLPをその度に取得する必要がある。
そこで、DB2CLPをテキストファイルに書きだすdb2clp.batを作成する。
echo.%DB2CLP% > "C:\db2data.txt"
2. DB2CLP情報を環境変数に書き込み、必要なDB2コマンドを実施
db2cmdコマンドを使用して、先ほどのdb2clp.batを実行。なぜわざわざbatを分けているかというと、コマンドの間にスペースが入ってしまうと、db2cmdは上手く認識してくれないため。
このスペース問題は厄介で、batファイル等を置く場所は、パスにスペースが入らない場所が好ましい。例えば、Cドライブ直下は大丈夫だが、マイドキュメントに配置すると”Documents and Settings”フォルダに配置されてしまい、スペースが入ってしまう。この問題に対しては、ダブルクオーテーション(“)で囲っても効果は無かった。
db2clp.batを使用して、DB2CLP情報がdb2data.txtに書きだされたら、それをコマンドプロンプトから読み取ってDB2CLPとして環境変数に書き込む。これでコマンドプロンプトからdb2コマンドを実行できるようになった。
以下がDB2CLPを書き込むdb2set.batの内容。ここでは、db2のコンフィグファイル(db2conf)をインポートしている。
db2cmd /c /i /w "C:\db2clp.bat" for /f %%i in (C:\db2data.txt) do set DB2CLP=%%i db2cfimp "N:\db2conf"
参考にしたサイト:
関連記事
記事はありませんでした