web-dev-qa-db-ja.com

Oracleスプールの見出しをクリアします

以下のコマンドを実行する前にファイルをスプールし、次のような出力を取得しました。

私は見出しをオフに設定しました、フィードバックをオフにしました

SET HEADING OFF SET FEEDBACK OFF SPOOL D:\ TEST.TXT SELECT SYSDATE FROM DUAL;スプーリングオフ

TEST.TXTの出力:

SQL> SELECT SYSDATE FROM DUAL;

2009年1月20日

SQL>スプールオフ

2つのSQL>行を削除するにはどうすればよいですか。出力だけが欲しい。

前もって感謝します。

必要なコマンドは次のとおりです。

SET ECHO OFF

ただし、スクリプトから実行されるコードに対してのみ機能し、インタラクティブに入力されたコマンドに対しては機能しません。次のようなスクリプトファイルを作成します(例:test.sql):

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0
SPOOL D:\TEST.TXT 
SELECT SYSDATE FROM DUAL; 
SPOOL OFF

次に、SQLPlusで次のように実行します。

SQL> @test

SETコマンドにPAGESIZE0を追加して、出力ファイルの日付より前に表示される空白行を削除しました。

15
Tony Andrews

これを使って:

#!/bin/ksh
CONNECT_STRING=dbapp/dbapp@inst
SQLPLUS_SETTINGS="SET PAGESIZE 1000 LINESIZE 500 ECHO OFF TRIMS ON TAB OFF FEEDBACK OFF HEADING OFF"
SQL_RESULT=`sqlplus -s ${CONNECT_STRING} << EOF
${SQLPLUS_SETTINGS}
select sysdate from dual;
exit;
EOF`

echo $SQL_RESULT >output_file
4
Vijay