DB2で外部ファイルに書かれたSQLを実行させるには
たんなるコマンドプロンプトではなくCLPを実行させて、その上でやる必要がある。OracleのSQL*Plusのイメージでいろいろやろうとすると感覚が違いますね。
テキストファイルからSQLステートメントを実行させたい場合はまずコネクトする。
db2 connect to DBインスタンス名
である。ここでの認証は上に書いたように、windows認証が使われる。で、インスタンスに接続したら、
db2 -f ファイル名.sql
とすればよいのだが、このままだとステートメントのデリミタが設定されていないので、-tをつけなくてはならないようだ。-vをつけるとエコーされる。なので、ここでは
db2 -tvf ファイル名.sql
とする。
ところで、単にdb2と打つと、db2=>というプロンプトになって対話モードに入ってしまう。この場合、connectなどはdb2 connectと打たずにconnectと打てばよくなるのだが、いっぽうでファイルからSQLを実行させる方法はどうなるのだろうか?
(追記)SIMさん、どうもありがとうございました。助かりました。DBもいろいろ表面だけは触ってますが、各社アーキテクチャがぜんぜん違っていて戸惑うことが多いです。はじめから順番に学習しているわけではないのでなかなか知りたい情報に辿り着くのがなかなか大変ですね。(2005/07/03 22:02)