powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_JOBS INTERVAL каждые целые 15 минут
19 сообщений из 19, страница 1 из 1
DBMS_JOBS INTERVAL каждые целые 15 минут
    #35286008
Bardis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите pls составить интервал что-бы вызывать Job каждые целые 15 минут.
Т.е. **:00,**:15,**:30,**:45
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #35286038
Oleg M.Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BardisПомогите pls составить интервал что-бы вызывать Job каждые целые 15 минут.
Т.е. **:00,**:15,**:30,**:45

Каждые 5 минут
Код: plaintext
1.
select TRUNC(SYSDATE,'HH24')+((FLOOR(TO_NUMBER(TO_CHAR(SYSDATE,'MI'))/ 5 )+ 1 )* 5 )/( 24 * 60 ) from dual
Каждые 10 минут
Код: plaintext
select TRUNC(SYSDATE,'HH24')+((FLOOR(TO_NUMBER(TO_CHAR(SYSDATE,'MI'))/ 10 )+ 1 )* 10 )/( 24 * 60 ) from dual
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #35286042
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
with t as (select trunc(sysdate,'hh')
      +(trunc(to_char(sysdate,'mm')/ 15 )+level* 15 )/( 24 * 60 ) d
      from dual connect by level< 5 )
select to_char(d,'hh24:mi:ss') from t;
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #35286058
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish
Код: plaintext
1.
2.
3.
with t as (select trunc(sysdate,'hh')
      +(trunc(to_char(sysdate,'mi')/ 15 )+level* 15 )/( 24 * 60 ) d
      from dual connect by level< 5 )
select to_char(d,'hh24:mi:ss') from t;

)))
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #35286093
Oleg M.Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каждые 15 минут

Код: plaintext
1.
select TRUNC(SYSDATE,'HH24')+((FLOOR(TO_NUMBER(TO_CHAR(SYSDATE,'MI'))/ 15 )+ 1 )* 15 )/( 24 * 60 ) from dual
)))
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #35286186
Bardis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо,
замечтельно все получилось
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39990896
GlooBus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу допетрить, нужно примерно тоже самое, каждые полчаса, но со сдвигом 10 минут назад, например:
17:50, 18:20, 18:50, 19:20 ...
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39990928
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микс interval и арифметики.

Код: plsql
1.
2.
3.
4.
5.
6.
select trunc(sysdate, 'hh24') - INTERVAL '10:00' MINUTE TO SECOND
       +
       ((FLOOR(TO_NUMBER(TO_CHAR(SYSDATE,'MI'))/30)+level)*30)/(24*60)
       TTT
  from dual
connect by level < 11;
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39990935
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
Микс interval и арифметики.


Код: plsql
1.
trunc(sysdate, 'hh24') - 10/1440 -- в сутках 1440 минут
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39990939
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перейти на dbms_scheduler jobs и забыть про эти извращения с интервалом :)
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39991042
GlooBus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm
Микс interval и арифметики.


Неа :) В данном случае в 2020-08-20 09:19:00 ответом будет 9:20 - верно!
А вот в 2020-08-20 09:21:00 тоже получим на выходе 9:20 - что уже НЕ верно, должны получить 9:50...

Я так понимаю тут только условие юзать... Но там столько букв получается, что кажется проще сделать два джоба :)
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39991048
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
del
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39991053
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй,
Код: plsql
1.
(trunc(sysdate) + trunc((sysdate+1/144-trunc(sysdate))*48)/48)+2/144 
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39991074
GlooBus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,

Спасибо большое! Смысла правда так и не догнал в написаном, но работает :)

Вообще многим джобам нужны индивидуальные время запуска, по этому наверное буду городить таблицу, туда записывать JOB_ID и когда, по каким дням он должен запускать + функцию, которая будет возвращать некий next_date согласно данной таблице.

Нашел тут интересное решение https://github.com/frankiechapson/CRON-Next-Date
Но работает не корректно :(
Например, при:
Код: sql
1.
select F_CRON_NEXT_DATE('20,50 * * * *', to_date('2020-08-20 11:51:00','yyyy-mm-dd hh24:mi:ss')) from dual


Возвращает 20.08.2020 11:20:00, а должна 12:20:00...
Но идея интересная, с кроном таки попроще будет, нужно допилить...
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39991089
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще можно устанавливать переменную next_date прямо внутри задания
Примеров на форуме есть
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39991133
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlooBus

Вообще многим джобам нужны индивидуальные время запуска, по этому наверное буду городить таблицу, туда записывать JOB_ID и когда, по каким дням он должен запускать + функцию, которая будет возвращать некий next_date согласно данной таблице.


Перестань изобретать велосипеды. Сказали-же, переходи на DBMS_SCHEDULER. DBMS_JOB deprecated с 12C a в 19C нутро DBMS_JOB вообще выкинуто и он стал не более чем оберткой на DBMS_SCHEDULER. Создание job через DBMS JOB под капотом создает DBMS_SCHEDULER job DBMS_JOB$_N где N это DBMS JOB job ID и выполняется как раз DBMS_SCHEDULER job DBMS_JOB$_N а не DBMS JOB job, которая, как я уже сказал, всего лишь обертка/обманка.

SY.
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39991152
GlooBus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY
Перестань изобретать велосипеды. Сказали-же, переходи на DBMS_SCHEDULER.

Так я уже перешел, я в своих разработках использую DBMS_SCHEDULER, есть даже своя процедура для облегчения создания задач в определенных условиях...
Но есть много не моих, старых работы завязанных на простой запуск анонимных блоков по расписанию. Переделывать их времени нет. Если я на это потрачу время, я не сделаю текущие задачи. А объяснять зачем я переделывал, что и так работает, тут как бы сложно!
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39991205
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конвертация DBMS_JOB job в DBMS_SCHEDULER job занимает 5 - 10 минут.

SY.
...
Рейтинг: 0 / 0
DBMS_JOBS INTERVAL каждые целые 15 минут
    #39991306
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY
Конвертация DBMS_JOB job в DBMS_SCHEDULER job занимает 5 - 10 минут.
Это миф для админов.
Уже много раз говорилось, что, к сожалению, DBMS_SCHEDULER функционально не покрывает DBMS_JOB. Взять, хотя бы, ту же транзакционность.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_JOBS INTERVAL каждые целые 15 минут
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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