CLPでエラーハンドリングする

ちょっと調べたりしたので、こちらにメモ。
PQL*Plusのスクリプトみたく、コマンドラインスクリプトでエラーハンドリングが出来ればいいなと。
DB2ではどうするのかなと、ちょっと調べてみました。

CLPとシェルを組み合わせて、こんな感じで。

                                                                • -

db2 connect to sample
rc=`db2 -ec +o \
"select * from empp"`       <- サンプルデータベースではemp表はありますが、
if $rc -eq 0 ;then        empp表は存在しないのでエラーとなります
echo "ok !"
else
echo $rc "error !"
fi
exit $rc

                                                                • -

204 error ! <- 実行するとこんな結果になります

                                                                • -

ポイントは、db2 -ec +o です。

"-ec" はSQLCODEを返します。
"+o" は標準出力に何も出さない指定です。

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0010410.html