9

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

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

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

TEST.TXTの出力:

SQL> SELECT SYSDATE FROM DUAL;

20-JAN-09

SQL> SPOOL OFF

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

前もって感謝します。

4

2 に答える 2

15

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

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を追加して、出力ファイルの日付より前に表示される空白行を削除しました。

于 2010-01-20T10:37:42.503 に答える
4

これを使って:

#!/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
于 2010-01-20T09:44:25.997 に答える