Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Spool несколько раз за сессию до spool off.  [new]
Edgar
Member

Откуда:
Сообщений: 434
Друзья, подскажите пожалуйста, можно ли спулить несколько раз в файл до окончания сессии (до того как spool off)?

Бизнес кейс такой:

Сканируем 30 таблиц со звонками в batch.sql (по таблице на каждый день).

Хочется после выполнения каждого запроса спулить результаты в файл, иначе все идет в буфер и запись в файл не происходит если записей не очень много.

Спасибо,
17 ноя 15, 14:46    [18429624]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Edgar,

документацию читать не пробовали?

STFF spool ... append
17 ноя 15, 14:58    [18429732]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
Речь про sqlplus?

Spool живет до Spool off или до выхода из sqlplus. Можно открыть Spool, несколько раз вызвать целевой скрипт и в конце закрыть Spool.
Append для Spool не поддерживается. Можно писать в файлы с разными именами. В имя файла достаточно воткнуть переменную подстановки.

Думаю, более продуктивным может быть перенаправление stdout в файл на этапе вызова sqlplus. Перенаправление потока поддерживает как очистку файла перед началом записи, так и запись в конец файла.
17 ноя 15, 14:58    [18429736]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
oragraf
Member

Откуда: Moscow
Сообщений: 1314
mcureenab
Речь про sqlplus?
Append для Spool не поддерживается.
Андрей, поддерживается. Передо мной дистрибутив такой лежит. Имя файла передается извне из батника, дальше несколько несколько раз происходит переключение sqlplus/sqlloader. Лог sqlplus получается целостный.
17 ноя 15, 15:06    [18429816]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
stax..
Guest
mcureenab
Речь про sqlplus?
Append для Spool не поддерживается.

http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12043.htm
SPOOL

SPOOL is not available in iSQL*Plus.

Syntax

SPO[OL] [file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]


.....
stax
17 ноя 15, 15:16    [18429901]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
ten
Member

Откуда: Екатеринбург
Сообщений: 1672
stax..,
Даже чуть пораньше :)
http://docs.oracle.com/cd/B14117_01/server.101/b12170/ch13.htm#sthref2969
17 ноя 15, 15:28    [18430014]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
stax..
Guest
ten
stax..,
Даже чуть пораньше :)
http://docs.oracle.com/cd/B14117_01/server.101/b12170/ch13.htm#sthref2969

не спорю
привел первое шо гугл выдал

удобная опция, даж странно что так позно реализовали

.....
stax
17 ноя 15, 15:33    [18430062]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
Edgar
Member

Откуда:
Сообщений: 434
друзья, мне кажется вопрос я не ясно изложил.

В файл в любом случае добавляется информация. Но результат не виден до spool off. Иначе говоря не происходит flush.
Kaк принудить такой flush?
17 ноя 15, 15:34    [18430066]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Edgar
друзья, мне кажется вопрос я не ясно изложил.

В файл в любом случае добавляется информация. Но результат не виден до spool off. Иначе говоря не происходит flush.
Kaк принудить такой flush?

дыкть, закрыть-(пере)открыть
17 ноя 15, 15:49    [18430155]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8131
Edgar
друзья, мне кажется вопрос я не ясно изложил.

В файл в любом случае добавляется информация. Но результат не виден до spool off. Иначе говоря не происходит flush.
Kaк принудить такой flush?
Яснее не стало... :-(

"А теперь, Федя, скажи Васе все, что ты ему сказал раньше, на нормальном, на гражданском языке". (с) 1971, Джентльмены удачи

Где и кому "результат не виден до spool off"?
Кто такой "flush" и как он должен происходить?
Кем и как обычно этот "flush" принуждается?

Расскажите подробно, не стесняйтесь.
Опишите всё так, будто бы вокруг вас собрались полные идиоты (мы)...
17 ноя 15, 15:49    [18430162]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10043
Edgar
В файл в любом случае добавляется информация. Но результат не виден до spool off. Иначе говоря не происходит flush.
Kaк принудить такой flush?


SPOOL spool.log
SELECT ...
SPOOL spool.log APPEND
SELECT ...
SPOOL spool.log APPEND
SELECT ...
.
.
.
SPOOL OFF


SY.
17 ноя 15, 15:52    [18430181]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
длинный опс
Guest
Edgar,

По мне, так онлайн-мониторить процессы БД удобнее средствами самой БД. А логфайл это для оффлайн-последействий.
17 ноя 15, 16:45    [18430485]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
Nobody1111
Guest
spool вот тоже пример неудобства sqlplus

Если, к примеру, кто-то kill -9 sqlplus, то несмотря на включенный spool, никто так и не узнает, какой оператор успел отработать последним. Или изволь втыкать, как папа Карло, spool append после каждого оператора.
17 ноя 15, 16:54    [18430547]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
Elic
Member

Откуда:
Сообщений: 29979
mcureenab
Append для Spool не поддерживается.
Надо меньше сидеть в землянке. Или не высовываться оттуда в форум вообще.
17 ноя 15, 17:09    [18430665]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
Nobody1111
spool вот тоже пример неудобства sqlplus

Если, к примеру, кто-то kill -9 sqlplus, то несмотря на включенный spool, никто так и не узнает, какой оператор успел отработать последним.
на то stdout есть.
17 ноя 15, 17:16    [18430709]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
Nobody1111
Guest
mcureenab
Nobody1111
spool вот тоже пример неудобства sqlplus

Если, к примеру, кто-то kill -9 sqlplus, то несмотря на включенный spool, никто так и не узнает, какой оператор успел отработать последним.
на то stdout есть.


Есть-то есть, но зачем тогда spool? Лог у утилиты по хорошему должен быть один.
17 ноя 15, 17:21    [18430742]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
Nobody1111
mcureenab
пропущено...
на то stdout есть.


Есть-то есть, но зачем тогда spool? Лог у утилиты по хорошему должен быть один.
например:

Spool cmd.tmp
Print &1
Spool off
@cmd.tmp


Спул можно использовать как журнал, но это скорее способ создания файлов из sqlplus - таких вот вспомогательных файлов для динамической генерации кода, для создания отчетов.
Вообщем spool и stdout успешно дополняют друг друга.
Еще момент, в stdout можно выводить не все сообщения, сохраняя его компактным. С другой стороны Спул можно включать и отключать по мере надобности.
17 ноя 15, 17:44    [18430908]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
Elic
Member

Откуда:
Сообщений: 29979
mcureenab
Спул можно использовать как журнал, но это скорее способ создания файлов из sqlplus - таких вот вспомогательных файлов для динамической генерации кода, для создания отчетов.
Не надо выдавать свои заблуждения за тренд.
17 ноя 15, 18:01    [18431012]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
Nobody11111
Guest
mcureenab
Спул можно использовать как журнал, но это скорее способ создания файлов из sqlplus - таких вот вспомогательных файлов для динамической генерации кода, для создания отчетов.
.........
Еще момент, в stdout можно выводить не все сообщения, сохраняя его компактным. С другой стороны Спул можно включать и отключать по мере надобности.


stdout можно использовать точно так же
17 ноя 15, 19:35    [18431585]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
Nobody1111
Guest
хотя да, будет не так просто
17 ноя 15, 19:44    [18431632]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
sigint/sigterm
Guest
Nobody1111
Если, к примеру, кто-то kill -9 sqlplus, то несмотря на включенный spool, никто так и не узнает, какой оператор успел отработать последним.
Обычно сначала есть проблема. Смотрят, чем процесс занят, и лишь потом предпринимают меры по прерыванию. Трудно представить ситуацию, чтобы клиентский процесс sqlplus был настолько проблемой, чтобы килять его не разобравшись ... а потом переживать за отработавший, но отролбаченный оператор, так как закомиченный вычислить можно.
17 ноя 15, 20:01    [18431728]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
sigint/sigterm
Nobody1111
Если, к примеру, кто-то kill -9 sqlplus, то несмотря на включенный spool, никто так и не узнает, какой оператор успел отработать последним.
Обычно сначала есть проблема. Смотрят, чем процесс занят, и лишь потом предпринимают меры по прерыванию.
Когда электрики свет вырубают, их не волнует, чем процесс занят.
17 ноя 15, 20:20    [18431818]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
killектрик
Guest
mcureenab
sigint/sigterm
пропущено...
Обычно сначала есть проблема. Смотрят, чем процесс занят, и лишь потом предпринимают меры по прерыванию.
Когда электрики свет вырубают, их не волнует, чем процесс занят.
свет вырубают оператором kill -9 sqlplus?
17 ноя 15, 21:31    [18432092]     Ответить | Цитировать Сообщить модератору
 Re: Spool несколько раз за сессию до spool off.  [new]
Nobody1111
Guest
да разные могут быть причины. Например, в ОС какой-то ресурс закончился - виртуальная память, семафоры, дескрипторы файлов и т.д.
17 ноя 15, 23:14    [18432507]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить