NEWPAGE システム変数
NEWPAGE は ページとページの間に設ける空白行の行数を設定する。
SET NEWPAGE コマンド
SET NEWPAGE コマンドの構文
SET NEWPAGE 行数
SET NEWPAGE NONE
短縮形
SET NEWP 行数
SET NEWP NONE
デフォルト
SET NEWP 1
ページ区切りの空白行はすべてのページ(第一ページ含む)の列ヘッダーの直前に設置される。
SET NEWPAGE 0 の使い方を間違ってないですか?
スクリプトで SET NEWPAGE 0 を使用しているケースの多くは PAGESIZE システム変数 の使用法と混同している可能性が高い。正しく SET NEWPAGE NONE を使うようにしたい。
NONE と 0 の違いは 「NONE が空白行が 0」 なのに対して 「0 では改ページ制御文字(Ctrl+L) を出力する」ことである。
スプールすると制御コードが出力されているのが確認できる。
現在でも一部の業務形態で使われているドットインパクトプリンタなどで印刷するとページ送りされるのだろう。
また、個人的にマニュアルとの認識の大きな違いは、現在の多くの端末*1では改ページコードは画面表示にほとんど影響しないと思う点である。
NEWPAGE の設定例
NEWPAGE を 2 行、ページサイズを 6 行にする。(列ヘッダー1行、列ヘッダーの下線1行を含む)
SQL> SET NEWPAGE 2
SQL> SET PAGESIZE 6
SQL> select * from account;
1
2
3 ID USER_NAME
4---------- ----------------------------------------
5 1 根岸 茜
6 2 菅原 千秋
1 -- ここでページ切り替え
2
3 ID USER_NAME
4---------- ----------------------------------------
5 3 深谷 有里
6 4 藤岡 唯
↑ 見やすいように行番号を後から付与
SET NEWPAGE 0 にすると
SQL> SET NEWPAGE 0
SQL> select * from account;
^L ID USER_NAME
---------- ----------------------------------------
1 根岸 茜
2 菅原 千秋
3 深谷 有里
4 藤岡 唯
^L ID USER_NAME
---------- ----------------------------------------
5 桑原 菜々
6 浦田 優作
7 今野 光輝
8 若松 真理↑ 見やすいように行番号を手で付与
^L は Ctrl+L (ディスプレイ上では表示されない改ページ制御コード)
SET NEWPAGE NONE にすると
SQL> SET NEWPAGE NONE
SQL> select * from account;
ID USER_NAME
---------- ----------------------------------------
1 根岸 茜
2 菅原 千秋
3 深谷 有里
4 藤岡 唯
ID USER_NAME
---------- ----------------------------------------
5 桑原 菜々
6 浦田 優作
7 今野 光輝
8 若松 真理
ID USER_NAME