以下のコマンドを実行する前にファイルをスプールし、次のような出力を取得しました。
私は見出しをオフに設定しました、フィードバックをオフにしました
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を追加して、出力ファイルの日付より前に表示される空白行を削除しました。
これを使って:
#!/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