Очистить заголовок в спуле Oracle - PullRequest
9 голосов
/ 20 января 2010

Я запустил файл в буфер перед запуском приведенной ниже команды и получил такой вывод:

Я установил курс, обратная связь отключена

SET HEADING OFF ОТКЛЮЧИТЬ ОБРАТНУЮ СВЯЗЬ SPOOL D: \ TEST.TXT ВЫБЕРИТЕ SYSDATE ИЗ ДВОЙНОГО; SPOOL OFF

ВЫХОД в TEST.TXT:

SQL> SELECT SYSDATE FROM DUAL;

20-JAN-09

SQL> SPOOL OFF

Как я могу удалить две строки SQL>. Я хочу только вывод.

Заранее спасибо.

Ответы [ 2 ]

15 голосов
/ 20 января 2010

Вам нужна команда:

SET ECHO OFF

Однако он работает только для кода, запускаемого из сценариев, а не для команд, введенных в интерактивном режиме. Вы должны создать такой файл сценария (например, с именем test.sql ):

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

Затем в SQL Plus запустите его так:

SQL> @test

Я добавил PAGESIZE 0 в команду SET, чтобы удалить пустую строку, которую вы в противном случае получите до даты в выходном файле.

4 голосов
/ 20 января 2010

используйте это:

#!/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
...