Oracle все еще показывает оператор спула, несмотря на "отключение выхода сервера"? - PullRequest
0 голосов
/ 10 марта 2020

Я запускаю следующие команды:

SET PAGESIZE 1000 LINESIZE 500 ECHO OFF TRIMS ON TAB OFF FEEDBACK OFF HEADING OFF SERVEROUTPUT OFF

SPOOL c:/filea1.sql
SELECT /*INSERT*/ * FROM TBL WHERE A = 1;

SPOOL c:/filea2.sql
SELECT /*INSERT*/ * FROM TBL WHERE A = 2;

SPOOL c:/filea3.sql
SELECT /*INSERT*/ * FROM TBL WHERE A = 3;

Каждый файл, кроме последнего, имеет оператор спула в последней строке файла, например:

row1
row2     
SQL> spool C:\next_file_name.sql

I попытался поместить оператор set между каждой парой катушек и оператором select, но результат тот же. Я также попытался разбить строку набора на отдельные операторы и поместить их все между спулом / выбором, но результат все тот же.

Есть предложения?

1 Ответ

1 голос
/ 10 марта 2020

Решение состоит в том, чтобы поместить отправленный вами код:

set pagesize ...

...

SELECT /*INSERT*/ * FROM TBL WHERE A = 3;

в сценарий. sql (назовем его moshe.sql). Затем в приглашении SQL* Plus запустите сценарий:

SQL> moshe.sql

Результат будет выглядеть так, как вы ожидали.

Кстати, не забудьте spool off, как только вы закончите (вы "забыли" сделать это в своем коде).

...