SQL*Plusで結果の前後に出力される空行を削除する方法



SQL*Plusで結果の前後に出力される空行を削除する方法です。

結果の前の改行の抑止
SET NEWPAGE NONE

結果の後の改行の抑止
SET FEEDBACK OFF


set pagesize 0
を指定したときにも先頭の改行は出力されませんが、headも同時に出力されなくなります。

つまり「set pagesize 0」は、以下の2コマンドの組み合わせと同等ということです。
set head off
set newpage none
「ヘッダ行の非表示」と「先頭空行の抑止」は別々に明示的に設定したほうがいいと思うので、「set pagesize 0」はお勧めしません。



各ページの最上部から上部タイトルまでの間に入れる空白行の数を設定します。値0を指定すると、(最初のページも含めて)各ページの開始位置に改ページ文字が設定され、ほとんどの端末で画面がクリアされます。NEWPAGEをNONEに設定した場合、SQL*Plusはレポートのページ間で空白行または改ページ文字を出力しません。

改ページの制御文字を出力したい場合
SET NEWPAGE 0
※Linuxのclearコマンド実行時や「Ctrl+L」押下時と同じ状態になる。繰り返し検索する処理で、検索結果をリアルタイムに表示したい場合など、特殊な使い方に限られると思われる。

スクリプトがn個以上のレコードを選択した場合に、スクリプトから戻されるレコード数を表示します。

ONまたはOFFによって、この表示をオンまたはオフにできます。フィードバックをONに設定すると、nが1に設定されます。フィードバックを0に設定することは、OFFに設定するのと同じです。

また、SET FEEDBACK OFFによって、SQLまたはPL/SQL文が正常に実行された後に表示される確認メッセージ(「表が作成されました。」、「PL/SQLプロシージャが正常に完了しました。」など)を非表示にできます。

※マニュアルには特に書いてありませんが、「SET FEEDBACK OFF」ではない状態だと無条件で末尾に改行が入ります。