行を折り返さないようにsqlplusを強制するだけでは十分ではありません。また、行を折り返さないようにスプールファイルを表示するために使用することをビューアに伝える必要があります。あなたの視聴者がある場合はless
、その後-S
オプションで、あなたはに応じて使用する必要があります
https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less。Unix / Linuxではhead -1 output.txt
、ファイルの最初の行を取得するために使用できるため、これが期待どおりかどうかを確認するかod -c output.txt|head
、出力ファイルの実際の改行位置を確認するために使用できます。
LONG列を表示し、それらの値に改行が含まれる場合、これらの列の値に対して複数の行が出力され、sqlplus設定でこれを無効にすることはできません。
次のsqlplusコマンドが役立つ場合があります。
SET LINESIZE linesize
線の長さ。ほとんどの場合の最大値は、linesize
あなたは無効な値にLINESIZEを設定した場合、あなたの最大値を見つけると、エラーメッセージを確認することができますので、32767でSET LINESIZE 0
与える可能性がありSP2-0267: linesize option 0 out of range (1 through 32767)
(1)
SET TRIMSPOOL ON
そうでない場合、スプールファイルのすべての行は、行サイズに達するまで空白で埋められます。
SET TRIMOUT ON
それ以外の場合、出力のすべての行は、行サイズに達するまで空白で埋められます。
SET WRAP OFF
LINESIZEより長い場合、行を切り捨てます。これは、行サイズが十分に大きい場合は発生しません。
SET TERMOUT OFF
結果の出力への出力を抑制します。行は引き続きスプールファイルに書き込まれます。これにより、ステートメントの実行時間が大幅に短縮される場合があります。
SET PAGESIZE 0
無限のページサイズを設定し、見出し、タイトルなどを避けるため。
SET
出力(NUMWIDTH、NUMFORMAT、LONG、COLSEP)およびパフォーマンス(ARRAYSIZE、LONGCHUNKSIZE)に関するその他のパラメーターがいくつかあります。
COLUMN
個々の列をフォーマットするには、コマンドを使用する必要があります。
たとえば、出力内column name format a30
の列name
を最大長30文字にフォーマットします。
表示サイズを固定したくないが、行の列の実際の値のサイズと同じにする必要がある場合、私が知っている唯一の方法は、ステートメントのselect句を変更して目的の結果を取得し、使用することです文字列連結演算子||
、例えば
select emp_id||' '||first_name||' '||last_name
from emp;
すべての変数の詳細な説明は、SQL * Plus User's Guide and Referenceにあります。
いくつかの設定(またはCOLUMN定義)を再利用する場合は、それらをファイルに保存し、再度必要になったときにこのファイルを実行できます。sqlplusを起動すると、このファイルを自動的に実行することもできます。
(1)「LINESIZEの最大値を見つける方法(システムに依存)(Doc ID 1547262.1)」