powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Слишком большие логи джоба
12 сообщений из 12, страница 1 из 1
Слишком большие логи джоба
    #40120472
Igor Karmanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Есть джоб, результат выполнения которого очень приличного размера (DBMS_OUTPUT.PUT).
В итоге результаты не влазят в поле OUTPUT, у которого тип, к сожалению, VARCHAR2.
Подскажите, пожалуйста, альтернативу полю OUTPUT?
Можно ли вставить результаты в BINARY_OUTPUT, к примеру, чтобы все влезло? И если можно, то как это реализовать?

Заранее спасибо!
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40120563
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишите в clob
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40120596
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Karmanov
Доброго времени суток!

Есть джоб, результат выполнения которого очень приличного размера (DBMS_OUTPUT .PUT ).
В итоге результаты не влазят в поле OUTPUT, у которого тип, к сожалению, VARCHAR2.
Подскажите, пожалуйста, альтернативу полю OUTPUT?
Можно ли вставить результаты в BINARY_OUTPUT, к примеру, чтобы все влезло? И если можно, то как это реализовать?

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

Используйте
DBMS_OUTPUT .PUT_LINE
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40120608
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Karmanov,

джоб пишет с помощью DBMS_OUTPUT

интересно как/чем смотрят(вычитывают) результат? DBMS_OUTPUT.GET_LINE в джобе?

.....
stax
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40120635
Фотография SeaGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor KarmanovПодскажите, пожалуйста, альтернативу полю OUTPUT?
Можно ли вставить результаты в BINARY_OUTPUT, к примеру, чтобы все влезло? И если можно, то как это реализовать?
Если пишется в OUTPUT, то пишется и в BINARY_OUTPUT.
OUTPUT ограничен varchar2(4000).
На BINARY_OUTPUT ограничений нет - весь вывод DBMS_OUTPUT.PUT там должен присутствовать.


Staxинтересно как/чем смотрят(вычитывают) результат? DBMS_OUTPUT.GET_LINE в джобе?
DBA_SCHEDULER_JOB_RUN_DETAILS: OUTPUT / BINARY_OUTPUT.

https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/scheduling-jobs-with-oracle-scheduler.html#GUID-198FED95-7867-4058-8111-2B825DF0FD00
авторYou can also use the attribute STORE_OUTPUT to direct the *_SCHEDULER_JOB_RUN_DETAILS view to store the output sent to stdout for external jobs or DBMS_OUTPUT for database jobs. When STORE_OUTPUT is set to TRUE and the LOGGING_LEVEL indicates that the job run should be logged, then all the output is collected and put inside the BINARY_OUTPUT column of this view. A char representation can be queried from the OUTPUT column.
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40120639
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeaGate

DBA_SCHEDULER_JOB_RUN_DETAILS: OUTPUT / BINARY_OUTPUT.

https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/scheduling-jobs-with-oracle-scheduler.html#GUID-198FED95-7867-4058-8111-2B825DF0FD00
авторYou can also use the attribute STORE_OUTPUT to direct the *_SCHEDULER_JOB_RUN_DETAILS view to store the output sent to stdout for external jobs or DBMS_OUTPUT for database jobs. When STORE_OUTPUT is set to TRUE and the LOGGING_LEVEL indicates that the job run should be logged, then all the output is collected and put inside the BINARY_OUTPUT column of this view. A char representation can be queried from the OUTPUT column.


спасибо
отстал я от реальной жизни

.....
stax
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40120893
Igor Karmanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeaGate,

В том-то и дело, что нет в BINARY_OUTPUT вывода, туда текстом пишется "BLOB" и на этом всё.
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40120895
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Karmanov
В том-то и дело, что нет в BINARY_OUTPUT вывода, туда текстом пишется "BLOB" и на этом всё.
Жжошь! Давай запрос через sqlplus.
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40120903
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Igor Karmanov,

В зависимости от инструмента... Скачайте себе этот BLOB и просмотрите привычным средством.
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40121091
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Karmanov


В том-то и дело, что нет в BINARY_OUTPUT вывода, туда текстом пишется "BLOB" и на этом всё.


Похоже ты и GUI пользоваться не умеешь. Кликни на BLOB и будет тебе счастье.

SY.
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40121096
Igor Karmanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oragraf,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
CREATE OR REPLACE PROCEDURE CMS_RBRU.CMS_RBRU_ACCOUNTS_UPDATE
IS
cursor am is SELECT DISTINCT
CASE
WHEN co.CONTRACTGROUPID = 'G4' THEN 'UPDATE CMS_RBRU.T_PE_COBJECT SET CURRENTACCOUNTBALANCE = '''|| regexp_replace(co.amount, '^(-?)([.,])', '\10\2') ||''', ACCOUNTCREDITED = '''|| cra.ACCNO || ''', ACCOUNTDEBITED = '''|| dea.ACCNO ||''' where CMSID = '''|| co.SOURCEID || ''' '
WHEN co.CONTRACTGROUPID != 'G4' THEN 'UPDATE CMS_RBRU.T_PE_COBJECT SET CURRENTACCOUNTBALANCE = '''|| regexp_replace(co.amount, '^(-?)([.,])', '\10\2') ||''', ACCOUNTDEBITED = '''|| cra.ACCNO || ''', ACCOUNTCREDITED = '''|| dea.ACCNO ||''' where CMSID = '''|| co.SOURCEID || ''' '
END AS "script"
FROM CMS_AM.CMS_OBJECTS co
INNER JOIN CMS_AM.CMS_ACCOUNTS cra ON cra.id = co.CONTRAACCOUNT_ID
INNER JOIN CMS_AM.CMS_ACCOUNTS dea ON dea.id = co.MAINACCOUNT_ID
INNER JOIN CMS_AM.CMS_MSG_OBJECTS cmo ON cmo.SOURCEID = co.SOURCEID
WHERE cmo.MESSAGE_ID in (select m.id
from cms_am.cms_MSG_OBJECTS mo
right join cms_am.cms_messages m on mo.message_id=m.id
where 1=1
and mo.id > (select (max (mm.id)-150000) from cms_am.cms_MSG_OBJECTS mm)
and mo.RESPONSEMESSAGEDATE >= TRUNC(SYSDATE)
and mo.status ='SENT'
and m.operation in ('bindToDeal','unbindOffDeal','changeAccAttr'));
current_upd am%ROWTYPE;
obj_counter NUMBER:=0;
BEGIN
OPEN am;
LOOP
FETCH am INTO current_upd;
EXIT WHEN am%NOTFOUND;
EXECUTE IMMEDIATE current_upd."script" ;
DBMS_OUTPUT.PUT_LINE('upd= '|| current_upd."script");
obj_counter:=obj_counter+1;
END LOOP;
COMMIT;
DBMS_OUTPUT.PUT_LINE('Updates count  = ' || obj_counter);
CLOSE am;
END CMS_RBRU_ACCOUNTS_UPDATE;



Похоже, что я как-то неправильно щелкал на BLOB, что очень странно, ну да ладно, теперь выводит данные, но там не полный список апдейтов,
пробовал выводить их количество, в поле OUTPUT показывает 3891 апдейтов, но в поле BINARY_OUTPUT их всего 50 штук.
...
Рейтинг: 0 / 0
Слишком большие логи джоба
    #40121098
Igor Karmanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри, ребята, спасибо всем.
Дело было в DBeaver, через SQL Developer поле BINARY_OUTPUT считалось на ура и в полном объёме.
А то я уже собирался пробовать отсылать логи на почту ))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Слишком большие логи джоба
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]