powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / dbms_jobs
11 сообщений из 11, страница 1 из 1
dbms_jobs
    #39203825
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создал job код:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
begin
  sys.dbms_job.submit(job => :job,
                      what => 'insert into size_db (TOTAL_SIZE_DATABASE_FILES, TOTAL_FREE_SPACE, TOTAL_USED_SPACE)
select

round(sum(used.bytes) / 1024 / 1024 ) || '' MB'', round(free.p / 1024 / 1024 ) || '' MB'', round(sum(used.bytes) / 1024 / 1024 ) - 
round(free.p / 1024 / 1024 ) || '' MB'' from (select bytes from v$datafile union all select bytes from v$tempfile) used, (select sum(bytes) as p from dba_free_space) free group by free.p;
commit;',
                      next_date => to_date('31-03-2016 16:00:27', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1');
  commit;
end;
/



При сохранение ни каких ошибок не появляется, но при попытки выполнить в ручную появляется окно с текстом "Ошибка выполнения задания". В чем может быть дело???
...
Рейтинг: 0 / 0
dbms_jobs
    #39203827
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТОП №4
...
Рейтинг: 0 / 0
dbms_jobs
    #39204783
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicТОП №4

??????
...
Рейтинг: 0 / 0
dbms_jobs
    #39204808
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014ElicТОП №4

??????
4. Почему в своем pl/sql-коде (представлении/процедуре/триггере/пакете) не удается использовать чужой объект - выдается ошибка ORA-00942 table or view does not exist ? Общие вопросы N7
...
Рейтинг: 0 / 0
dbms_jobs
    #39205605
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема решена, просто при создание таблицы указал тип данных столбца number, а при вставке в строку, резуьтат запроса содержал цыфры и текст.
...
Рейтинг: 0 / 0
dbms_jobs
    #39280015
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что нужно прописать в поле интервал, чтобы job запускался два раза в сутки т.е. в 8:00 и в 15:00???
...
Рейтинг: 0 / 0
dbms_jobs
    #39280040
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014,
создай два джоба
...
Рейтинг: 0 / 0
dbms_jobs
    #39280263
Фотография Takurava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014Что нужно прописать в поле интервал, чтобы job запускался два раза в сутки т.е. в 8:00 и в 15:00???
Код: plsql
1.
Trunc(sysdate)+Decode(Sign(Trunc((To_Char(sysdate,'HH24')-11)/4)), -1, 8, 0, 15, 32)/24

:)
Код: plsql
1.
2.
with s1 as (select Trunc(sysdate)+(rownum-1)/24 dat from dual connect by level<25)
select dat, Sign(Trunc((To_Char(dat,'HH24')-11)/4)), Trunc(dat)+Decode(Sign(Trunc((To_Char(dat,'HH24')-11)/4)), -1, 8, 0, 15, 32)/24 from s1
...
Рейтинг: 0 / 0
dbms_jobs
    #39280267
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014,

https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_job.htm#i1000807 interval

Date function that calculates the next time to run the job. The default is NULL. This must evaluate to a either a future point in time or NULL.

Код: plsql
1.
2.
3.
4.
5.
interval => 'case '     
            || ' when extract (hour from systimestamp) >= 8 AND EXTRACT (hour from systimestamp) < 15 '
            || ' then trunc( sysdate ) + 15 / 24 '
            || ' else trunc( sysdate + 1 ) + 8 / 24 '
            || ' end '
...
Рейтинг: 0 / 0
dbms_jobs
    #39280286
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer
Код: plsql
1.
            || ' else trunc( sysdate + 1 ) + 8 / 24 '


Но в случае длительных джобов, переваливших с 15:00 за полночь, это даст неправильный результат.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
interval => 'case '     
            || ' when extract (hour from systimestamp) >= 8 AND EXTRACT (hour from systimestamp) < 15 '
            || ' then trunc( sysdate ) + 15 / 24 '
            || ' when extract (hour from systimestamp) >= 15 '
            || ' then trunc( sysdate + 1 ) + 8 / 24 '
            || ' else trunc( sysdate ) + 8 / 24 '
            || ' end '
...
Рейтинг: 0 / 0
dbms_jobs
    #39280724
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спс за ответы
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / dbms_jobs
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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