SQL*Plus で SQL を実行するとクエリ結果が流れてしまい、
いちいち画面をスクロールで戻って確認するのがめんどーなことがある。

そんな時 SQL*Plus のシステム変数 pause を使えば、クエリの結果出力を
一画面に収まる範囲で一時停止させることが可能。

構文

SET PAU[SE] { ON | OFF | text }

※ [] 内は、省略可能。

デフォルトの状態

SQL> show pause
PAUSE は OFF です。

→ デフォルトは OFF のため、クエリ結果は1度に全て出力される。

有効にする

SQL> set pause on

変更を確認

SQL> show pause
PAUSE は ONで、設定値は "" です。

(設定値については後述)

変更後

例) 任意のクエリを実行(一画面に収まらない件数で確認)

SQL> select * from dba_tables;

実行するとウィンドウサイズに合わせて出力が一時停止。
Enter キーを押下すると、次の結果が表示される。
途中でキャンセルしたい場合は、Ctrl+C で戻れる。

(※) 任意のメッセージを表示させたい場合は、引用符で囲って指定する。

SQL> set pause "ポーズ中"

SQL> show pause
PAUSE は ONで、設定値は "ポーズ中" です。

メッセージはウィンドウの最下部に表示される。

実行するクエリによっては見づらくなるので、
システム変数 linesize や pagesize などと一緒に使用するとよい。

関連記事