【SQL*Plus】SETシステム変数の設定前後の具体例


### 概要
SETシステム変数を変更すると何がどう変わるのかを具体的にSQL等を実行して確認します。

### 環境
Oracle 11.2.0

### SETシステム変数の一覧
SETシステム変数の一覧は下記リンク(Oracleリファレンス)から取得しています。
リファレンスを見れば使い方がすぐに分かる(またはさっぱり分からない)場合は本記事での説明を無しにしています。
[SETシステム変数の一覧](https://docs.oracle.com/cd/E16338_01/server.112/b56314/ch_twelve040.htm)

| No    | SETシステム変数             | 本記事での説明有無  | 簡易説明         |
|:------|:---------------------------|:-------------------|:-------------|
| 1     | SET APPI[NFO]              | 無                 | -            |
| 2     | SET ARRAY[SIZE]            | 無                 | -            |
| 3     | SET AUTO[COMMIT]           | 無                 | -            |
| 4     | SET AUTOP[RINT]            | 有                 | バインド変数自動出力       |
| 5     | SET AUTORECOVERY           | 無                 | -            |
| 6     | SET AUTOT[RACE]            | 有                 | 実行計画            |
| 7     | SET BLO[CKTERMINATOR]      | 無                 | -            |
| 8     | SET CMDS[EP]               | 無                 | -            |
| 9     | SET COLSEP                 | 有                 | 列の区切り文字            |
| 10    | SET CON[CAT]               | 無                 | -            |
| 11    | SET COPYC[OMMIT]           | 無                 | -            |
| 12    | SET COPYTYPECHECK          | 無                 | -            |
| 13    | SET DEF[INE]               | 無                 | -            |
| 14    | SET DESCRIBE               | 無                 | -            |
| 15    | SET ECHO                   | 有                 | 実行コマンド表示  |
| 16    | SET EDITF[ILE]             | 有                 | EDITコマンドの出力ファイル名   |
| 17    | SET EMB[EDDED]             | 無                 | -            |
| 18    | SET ERRORL[OGGING]         | 有                 | エラーログ記録            |
| 19    | SET ESC[APE]               | 無                 | -            |
| 20    | SET ESCCHAR                | 無                 | -            |
| 21    | SET EXITC[OMMIT]           | 無                 | -            |
| 22    | SET FEED[BACK]             | 有                 | 取得件数            |
| 23    | SET FLAGGER                | 有                 | SQL92準拠            |
| 24    | SET FLU[SH]                | 無                 | -            |
| 25    | SET HEA[DING]              | 有                 | カラム表示            |
| 26    | SET HEADS[EP]              | 有                 | カラム区切り            |
| 27    | SET INSTANCE               | 無                 | -            |
| 28    | SET LIN[ESIZE]             | 有                 | 1行表示数            |
| 29    | SET LOBOF[FSET]            | 無                 | -            |
| 30    | SET LOGSOURCE              | 無                 | -            |
| 31    | SET LONG                   | 無                 | -            |
| 32    | SET LONGC[HUNKSIZE]        | 無                 | -            |
| 33    | SET MARK[UP]               | 無                 | -            |
| 34    | SET NEWP[AGE]              | 有                 | ページ最上部の空白行数  |
| 35    | SET NULL                   | 有                 | null置換文字            |
| 36    | SET NUMF[ORMAT]            | 有                 | 数値フォーマット            |
| 37    | SET NUM[WIDTH]             | 有                 | 数値幅            |
| 38    | SET PAGES[IZE]             | 有                 | 1ページのサイズ            |
| 39    | SET PAU[SE]                | 無                 | -            |
| 40    | SET RECSEP                 | 有                 | 行のセパレータ方式        |
| 41    | SET RECSEPCHAR             | 有                 | 行のセパレータ文字列            |
| 42    | SET SERVEROUT[PUT]         | 有                 | ストアド・プロシージャの出力(DBMS_OUTPUT PUT_LINE)またはPL/SQLブロックの出力            |
| 43    | SET SHIFT[INOUT]           | 無                 | -            |
| 44    | SET SHOW[MODE]             | 有                 | setコマンドの設定前後出力    |
| 45    | SET SQLBL[ANKLINES]        | 有                 | 空白行の入力            |
| 46    | SET SQLC[ASE]              | 有                 | 実行直前に大/小文字変換     |
| 47    | SET SQLCO[NTINUE]          | 有                 | ハイフン使用後のプロンプト  |
| 48    | SET SQLN[UMBER]            | 有                 | コマンド改行時の行番号   |
| 49    | SET SQLPLUSCOMPAT[IBILITY] | 無                 | -            |
| 50    | SET SQLPRE[FIX]            | 有                 | 別コマンド実行時の接頭辞   |
| 51    | SET SQLP[ROMPT]            | 有                 | プロンプト変更            |
| 52    | SET SQLT[ERMINATOR]        | 有                 | 終了文字列            |
| 53    | SET SUF[FIX]               | 有                 | 拡張子            |
| 54    | SET TAB                    | 有                 | タブ            |
| 55    | SET TERM[OUT]              | 有                 | 結果出力            |
| 56    | SET TI[ME]                 | 有                 | 現在時刻            |
| 57    | SET TIMI[NG]               | 有                 | 実行時間            |
| 58    | SET TRIM[OUT]              | 有                 | 出力の空白除去            |
| 59    | SET TRIMS[POOL]            | 有                 | SPOOL出力の空白除去            |
| 60    | SET UND[ERLINE]            | 有                 | ヘッダー下線            |
| 61    | SET VER[IFY]               | 有                 | 置換前後            |
| 62    | SET WRA[P]                 | 有                 | 行の折り返し            |
| 63    | SET XMLOPT[IMIZATIONCHECK] | 無                 | -            |
| 64    | SET XQUERY BASEURI         | 無                 | -            |
| 65    | SET XQUERY ORDERING        | 無                 | -            |
| 66    | SET XQUERY NODE            | 無                 | -            |
| 67    | SET XQUERY CONTEXT         | 無                 | -            |

### No4 SET AUTOP[RINT]
・デフォルト(OFF)

```sql
SQL> !cat test.sql
VARIABLE n NUMBER
BEGIN
:n := 1;
END;
/

SQL> @test.sql

PL/SQLプロシージャが正常に完了しました。

SQL> 
```


・ONに設定

```sql
SQL> !cat test.sql
VARIABLE n NUMBER
BEGIN
:n := 1;
END;
/

SQL> set AUTOPRINT ON
SQL> @test.sql

PL/SQLプロシージャが正常に完了しました。


         N
----------
         1

SQL> 
```

### No6 SET AUTOT[RACE]
・デフォルト(OFF)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```


・ONに設定

```sql
SQL> set AUTOTRACE ON
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven


実行計画
----------------------------------------------------------
Plan hash value: 1833546154

--------------------------------------------------------------------------------
-------------

| Id  | Operation                   | Name          | Rows  | Bytes | Cost (%CPU
)| Time     |

--------------------------------------------------------------------------------
-------------

|   0 | SELECT STATEMENT            |               |     1 |    11 |     1   (0
)| 00:00:01 |

|   1 |  TABLE ACCESS BY INDEX ROWID| EMPLOYEES     |     1 |    11 |     1   (0
)| 00:00:01 |

|*  2 |   INDEX UNIQUE SCAN         | EMP_EMP_ID_PK |     1 |       |     0   (0
)| 00:00:01 |

--------------------------------------------------------------------------------
-------------


Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("EMPLOYEE_ID"=100)


統計
----------------------------------------------------------
         94  recursive calls
          0  db block gets
        112  consistent gets
          0  physical reads
          0  redo size
        631  bytes sent via SQL*Net to client
        519  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          5  sorts (memory)
          0  sorts (disk)
          1  rows processed
```

### No9 SET COLSEP
・デフォルト(単一の空白)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```


・半角カンマ(,)に設定

```sql
SQL> set COLSEP ,
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID,FIRST_NAME
-----------,--------------------
        100,Steven
```

### No15 SET ECHO
・デフォルト(OFF)

```sql
SQL> @test.sql

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

・ONに設定

```sql
SQL> @test.sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

### No16 SET EDITF[ILE]
・デフォルト(afiedt.buf)

```sql
SQL> show editf
editfile "afiedt.buf"
SQL> select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID MANAGER_ID
----------- ----------
        100

SQL> EDIT
file afiedt.bufが書き込まれました。
/bin/bash: ed: command not found

  1* select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 100
SQL> !ls
afiedt.buf
```

・test.txtに設定

```sql
SQL> select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID MANAGER_ID
----------- ----------
        100

SQL> EDIT
file test.txtが書き込まれました。
/bin/bash: ed: command not found

  1* select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 100
SQL> !ls
test.txt
```

### No18 SET ERRORL[OGGING]
・デフォルト(OFF)

```sql
SQL> select EMPLOYEE_ID, MANAGER_ID;
select EMPLOYEE_ID, MANAGER_ID
                             *
行1でエラーが発生しました。:
ORA-00923: FROMキーワードが指定の位置にありません。


SQL> select message from SPERRORLOG;

レコードが選択されませんでした。

SQL> 
```

・ONに設定

```sql
SQL> set ERRORLOGGING ON
SQL> select EMPLOYEE_ID, MANAGER_ID;
select EMPLOYEE_ID, MANAGER_ID
                             *
行1でエラーが発生しました。:
ORA-00923: FROMキーワードが指定の位置にありません。


SQL> select message from SPERRORLOG;

MESSAGE
--------------------------------------------------------------------------------
ORA-00923: FROMキーワードが指定の位置にありません。

SQL> 
```

### No22 SET FEED[BACK]
・デフォルト(ON)
　※デフォルトだと6行以上の場合に「～行が選択されました。」メッセージが表示される。

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where rownum <= 6;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
        101 Neena
        102 Lex
        103 Alexander
        104 Bruce
        105 David

6行が選択されました。
```

・OFFに設定

```sql
SQL> set FEEDBACK OFF
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where rownum <= 6;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
        101 Neena
        102 Lex
        103 Alexander
        104 Bruce
        105 David
```

### No23 SET FLAGGER
・デフォルト(OFF)

```sql
SQL> create table test (col1 BLOB);

表が作成されました。
```

・ON(ENTRY)に設定

```sql
SQL> set FLAGGER ENTRY
SQL> create table test (col1 BLOB);
create table test (col1 BLOB)
*
行1でエラーが発生しました。:
ORA-00097: Oracle SQL機能は、SQL92 Entryレベルでは使用できません。
```

### No25 SET HEA[DING]
・デフォルト(ON)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

・OFFに設定

```sql
SQL> set HEADING OFF
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

        100 Steven
```

### No26 SET HEADS[EP]
・デフォルト(|)

```sql
SQL> COLUMN FIRST_NAME HEADING 'FIRST|NAME,TEST'
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

            FIRST
EMPLOYEE_ID NAME,TEST
----------- --------------------
        100 Steven
```


・半角カンマ(,)に設定
　※設定後はCOLUMNコマンドを再度実行しないと反映されない

```sql
SQL> set HEADSEP ,
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

            FIRST
EMPLOYEE_ID NAME,TEST
----------- --------------------
        100 Steven

SQL> COLUMN FIRST_NAME HEADING 'FIRST|NAME,TEST'
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

            FIRST|NAME
EMPLOYEE_ID TEST
----------- --------------------
        100 Steven
```

### No28 SET LIN[ESIZE]
・デフォルト(80)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven

SQL> show lines
```

・10に設定

```sql
SQL> set LINESIZE 10
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_I
----------
FIRST_NAME
----------
       100
Steven
```

### No34 SET NEWP[AGE]
・デフォルト(1)

```sql
SQL> select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID MANAGER_ID
----------- ----------
        100
```

・3に設定

```sql
SQL> select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 100;



EMPLOYEE_ID MANAGER_ID
----------- ----------
        100
```

### No35 SET NULL
・デフォルト(空白)

```sql
SQL> select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID MANAGER_ID
----------- ----------
        100
```

・emptyという文字列に設定

```sql
SQL> set NULL empty
SQL> select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID MANAGER_ID
----------- ----------
        100 empty
```

### No36 SET NUMF[ORMAT]
・デフォルト(空白)

```sql
SQL> select SALARY from HR.EMPLOYEES where EMPLOYEE_ID = 100;

    SALARY
----------
     24000
```

・999,999,999に設定

```sql
SQL> set NUMFORMAT 999,999,999
SQL> select SALARY from HR.EMPLOYEES where EMPLOYEE_ID = 100;

      SALARY
------------
      24,000
```

### No37 SET NUM[WIDTH]
・デフォルト(10)

```sql
SQL> select SALARY from HR.EMPLOYEES where EMPLOYEE_ID = 100;

    SALARY
----------
     24000
```

・5に設定

```sql
SQL> set NUMWIDTH 5
SQL> select SALARY from HR.EMPLOYEES where EMPLOYEE_ID = 100;

SALARY
------
 24000
```

### No38 SET PAGES[IZE]
・デフォルト(14)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where rownum <= 14;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
        101 Neena
        102 Lex
        103 Alexander
        104 Bruce
        105 David
        106 Valli
        107 Diana
        108 Nancy
        109 Daniel
        110 John

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        111 Ismael
        112 Jose Manuel
        113 Luis

14行が選択されました。
```

・15に設定

```sql
SQL> set PAGESIZE 15
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where rownum <= 14;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
        101 Neena
        102 Lex
        103 Alexander
        104 Bruce
        105 David
        106 Valli
        107 Diana
        108 Nancy
        109 Daniel
        110 John
        111 Ismael

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        112 Jose Manuel
        113 Luis

14行が選択されました。
```

### No40, 41 SET RECSEP, SET RECSEPCHAR
・デフォルト(RECSEPはWRAP、RECSEPCHARは単一の空白)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven

```

・RECSEPはEACH、RECSEPCHARは*に設定

```sql
SQL> set RECSEP EACH
SQL> set RECSEPCHAR *
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
********************************************************************************

```

### No42 SET SERVEROUT[PUT]
・デフォルト(OFF)

```sql
SQL> show serverout
serveroutput OFF
SQL> begin
  2  DBMS_OUTPUT.PUT_LINE('test');
  3  end; 
  4  /

PL/SQLプロシージャが正常に完了しました。
```

・ONに設定

```sql
SQL> set SERVEROUTPUT ON
SQL> begin
  2  DBMS_OUTPUT.PUT_LINE('test');
  3  end;
  4  /
test

PL/SQLプロシージャが正常に完了しました。
```

### No44 SET SHOW[MODE]
・デフォルト(OFF)

```sql
SQL> set ECHO ON
SQL> 
```

・ONに設定

```sql
SQL> set SHOWMODE ON
新: showmode BOTH
SQL> set ECHO ON
旧: echo OFF
新: echo ON
SQL> 
```

### No45 SET SQLBL[ANKLINES]
・デフォルト(OFF)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100          
  2  
SQL> 
```

・ONに設定

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100 
  2  
  3  ;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven

SQL> 
```

### No46 SET SQLC[ASE]
・デフォルト(MIXED)

```sql
SQL> select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 101;

EMPLOYEE_ID MANAGER_ID
----------- ----------
        101        100

SQL> select sql_text from (select * from v$sql where sql_text not like '%v$sql%' and sql_text like '%EMPLOYEE_ID%' order by first_load_time desc) where rownum = 1;

SQL_TEXT
--------------------------------------------------------------------------------
select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 101
```

・UPPERに設定

```sql
SQL> set SQLCASE UPPER
SQL> select EMPLOYEE_ID, MANAGER_ID from HR.EMPLOYEES where EMPLOYEE_ID = 101;

EMPLOYEE_ID MANAGER_ID
----------- ----------
        101        100

SQL> select sql_text from (select * from v$sql where sql_text not like '%v$sql%' and sql_text like '%EMPLOYEE_ID%' order by first_load_time desc) where rownum = 1;

SQL_TEXT
--------------------------------------------------------------------------------
SELECT EMPLOYEE_ID, MANAGER_ID FROM HR.EMPLOYEES WHERE EMPLOYEE_ID = 101
```

### No47 SET SQLCO[NTINUE]
・デフォルト("> ")

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100 -
> ;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

・"% "に設定

```sql
SQL> set SQLCONTINUE "% "
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100 -
% ;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

### No48 SET SQLN[UMBER]
・デフォルト(ON)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100
  2  ;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

・OFFに設定

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100
SQL> ;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

### No50 SET SQLPRE[FIX]
・デフォルト(#)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where
  2  #select 'test' from dual;

'TES
----
test
```

・%に設定

```sql
SQL> set SQLPREFIX %
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where
  2  %select 'test' from dual;

'TES
----
test
```

### No51 SET SQLP[ROMPT]
・デフォルト("SQL\> ")

```sql
SQL> 
```

・"test> "に設定

```sql
SQL> set SQLPROMPT "test> "
test> 
```

### No52 SET SQLT[ERMINATOR]
・デフォルト(;)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

・%に設定

```sql
SQL> set SQLTERMINATOR %
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100%

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

### No53 SET SUF[FIX]
・デフォルト(sql)

```sql
SQL> !ls
test.sql  test.txt

SQL> get test
  1* sql extension file
```

・OFFに設定

```sql
SQL> set SUFFIX txt
SQL> !ls
test.sql  test.txt

SQL> get test
  1* txt extension file
```

### No54 SET TAB
・デフォルト(ON)
![trimout_on.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121997/ab0c4a91-30d4-39eb-875e-06177d55163d.png)

・OFFに設定
![tab_off.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121997/0244b1b4-bbf1-4bb1-997f-23a98385d7eb.png)

### No55 SET TERM[OUT]
・デフォルト(ON)

```sql
SQL> @test.sql

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

・OFFに設定

```sql
SQL> set TERMOUT OFF
SQL> @test.sql
SQL> 
```

### No56 SET TI[ME]
・デフォルト(OFF)

```sql
SQL> 
SQL> 
```

・ONに設定

```sql
08:25:14 SQL> 
08:25:17 SQL> 
```

### No57 SET TIMI[NG]
・デフォルト(OFF)

```sql
SQL> select count(*) from all_tables;

  COUNT(*)
----------
      1663
```

・ONに設定

```sql
SQL> set TIMING ON
SQL> select count(*) from all_tables;

  COUNT(*)
----------
      1663

経過: 00:00:00.02
```

### No58 SET TRIM[OUT]
・デフォルト(ON)
![trimout_on.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121997/ab0c4a91-30d4-39eb-875e-06177d55163d.png)

・OFFに設定
![trimout_off.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121997/a0bde7c5-5d47-1f63-a66e-aa39d378f3fe.png)

### No59 SET TRIMS[POOL]
・デフォルト(OFF)
![trims_off.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121997/35511ea4-ba19-9915-1086-f1799074abdd.png)

・ONに設定
![trims_on.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121997/f2d2ec7d-0872-d2b9-9b2a-df5a815d0fc0.png)

### No60 SET UND[ERLINE]
・デフォルト(-)

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

・*に設定

```sql
SQL> select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME
*********** ********************
        100 Steven
```

### No61 SET VER[IFY]
・デフォルト(ON)

```sql
SQL> @test.sql
1に値を入力してください: 100
旧   1: select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = &1
新   1: select EMPLOYEE_ID, FIRST_NAME from HR.EMPLOYEES where EMPLOYEE_ID = 100

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

・OFFに設定

```sql
SQL> set VERIFY OFF
SQL> @test.sql
1に値を入力してください: 100

EMPLOYEE_ID FIRST_NAME
----------- --------------------
        100 Steven
```

### No62 SET WRAP
・デフォルト(ON)

```sql
SQL> select * from HR.EMPLOYEES where EMPLOYEE_ID = 100;

EMPLOYEE_ID FIRST_NAME           LAST_NAME
----------- -------------------- -------------------------
EMAIL                     PHONE_NUMBER         HIRE_DATE           JOB_ID
------------------------- -------------------- ------------------- ----------
    SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
---------- -------------- ---------- -------------
        100 Steven               King
SKING                     515.123.4567         2003/06/17 00:00:00 AD_PRES
     24000                                      90
```

・OFFに設定

```sql
SQL> set WRAP OFF
SQL> select * from HR.EMPLOYEES where EMPLOYEE_ID = 100;
行は切り捨てられます。

行は切り捨てられます。

行は切り捨てられます。

行は切り捨てられます。

行は切り捨てられます。

行は切り捨てられます。

行は切り捨てられます。


EMPLOYEE_ID FIRST_NAME           LAST_NAME                 EMAIL
----------- -------------------- ------------------------- ---------------------
        100 Steven               King                      SKING
```