SQL*Plus > SET NEWPAGE

NEWPAGE システム変数

NEWPAGE は ページとページの間に設ける空白行の行数を設定する。

  • 短縮形は NEWP
  • デフォルト値 1

SET NEWPAGE コマンド

SET NEWPAGE コマンドの構文

SET NEWPAGE 行数
SET NEWPAGE NONE

短縮形

SET NEWP 行数
SET NEWP NONE

デフォルト

SET NEWP 1

ページ区切りの空白行はすべてのページ(第一ページ含む)の列ヘッダーの直前に設置される。

  • 豆知識
    SET PAGESIZE 0 が設定されると ページヘッダー、列ヘッダー、ページブレーク、タイトル、初期空白行(NEWPAGE) などがすべて非表示になる。

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


日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー

*1 Windowsのコマンドプロンプト、VT100 をベースとする TeraTerm や xterm などのターミナルエミュレータ