□DB2 db2clpで、SQL文を改行コードで切らない方法

db2clpにて、DB2の操作を行う際、通常は改行コード(またはエンターキー押下)単位で、
SQL文1文として実行されます。
(スクリプトファイルを別途用意したり)長いSQL文を実行しようとした場合に、この状況は不便になります。
 改行を抑止する場合は、下記の様に\マークで可能ですが、いちいち\マークをつける必要があり、
不便です。

db2 => select * from testtable \
db2 (続き) => where key1 = 111

そこで、OracleのSQL*PLUSの様に、;(セミコロン)で、SQL文を実行させられるようにする方法があります。

 db2 -t

として実行するか、環境変数:DB2OPTIONSに-tを設定するか何れかで可能になります。

export DB2OPTIONS=-t


db2 => select * from testtable
db2 (続き) => where key1 = 111
db2 (続き) => ;

;(セミコロン)を入力されるまで、実行されなくなります。

また、;(セミコロン)以外のコードをターミネータにすることも可能です。

db2 -td@

このようにすると、@まで取り込んでから処理されます。
;(セミコロン)がターミネータの場合、ストアドプロシージャなどスクリプト中に;を含んでおり、不都合となりますので、@などをターミネータにすることが有効になります。
最終更新:2007年08月24日 10:12