SQLを実行したときに、元のSQLも一緒に表示する
cシェルでsqlplusを実行するときに、
sqlplus user/pass@service <<EOF select count(*) from hoge / EOF
みたいなことをやると、結果に「select count(*) 〜」が出力されず、件数しか出てこないので、何テーブルが何件なのか?ということが分からないというオチがあります。
で、set echo onとかやればいくんじゃないの?と思ったのですが、これは、
>@moge.sql とか、
>start moge.sql とか、
やったときのみ有効なオプションらしい。
でマニュアルを読んでみると、/だと元のSQL(というかバッファ)は表示せず、RUNだと表示するみたいなことが書いてあった。で、早速、
sqlplus user/pass@service <<EOF select count(*) from hoge RUN EOF
みたいにやってみると、無事元のSQLが表示されました。(SQLとRUNの間の一行は、バッファ入力終了の意味あり)
いつぞやのset feed onの話にしても、結構微妙なのが多いなぁ。