TRIMSPOOL システム変数
TRIMSPOOL はスプールファイルの各行の出力の終わりから行末までの空白を出力するかしないかを設定する。
SET TRIMSPOOL コマンド
SET TRIMSPOOL コマンドの構文
SET TRIMSPOOL ON
SET TRIMSPOOL OFF
短縮形
SET TRIMS ON
SET TRIMS OFF
デフォルト
SET TRIMSPOOL OFF
SET TRIMSPOOL ON と SET TRIMOUT ON の違い
TRIMSPOOL システム変数は SQL*Plus の SPOOL 命令によるファイル書き出し時に行末のトリム処理を制御する。
TRIMOUT システム変数 は SQL*Plus の 標準出力(STDOUT)の表示時に行末のトリム処理を制御する。
以下のスクリプトで、どのように違うか確認してみる。
trimspool.sql ファイル
SET TRIMSPOOL ON
set trimout off
set linesize 10
spool trimspool.log
select '12345' from dual;
spool off
exit
このスクリプトをコマンドプロンプトから以下のように実行すると、SPOOL によって 「trimspool.log」ファイル、リダイレクトによって「trimout.log」ファイルが生成される。
C:\>sqlplus -s rivus/passwd @trimspool.sql > trimout.log
-- ↑ ↑
-- サイレントモード スペースを空ける
実行結果ファイル
trimspool.log ファイル (SET TRIMSPOOL ON)
'1234
-----
12345
trimspool.log ファイルの内容は行末のトリム処理が行われている。
trimout.log ファイル (SET TRIMOUT OFF)
'1234_____
-----_____
12345_____
表示の都合上スペースを '_' で表示している。
trimout.log ファイルの内容は SET LINESIZE 10 の設定により10文字になるまで行末にスペースが補完されている。