Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_JOBS INTERVAL каждые целые 15 минут / 19 сообщений из 19, страница 1 из 1
29.04.2008, 14:45
    #35286008
Bardis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
Помогите pls составить интервал что-бы вызывать Job каждые целые 15 минут.
Т.е. **:00,**:15,**:30,**:45
...
Рейтинг: 0 / 0
29.04.2008, 14:55
    #35286038
Oleg M.Ivanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
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
29.04.2008, 14:56
    #35286042
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
Код: 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
29.04.2008, 15:00
    #35286058
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
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
29.04.2008, 15:07
    #35286093
Oleg M.Ivanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
Каждые 15 минут

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


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


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

Я так понимаю тут только условие юзать... Но там столько букв получается, что кажется проще сделать два джоба :)
...
Рейтинг: 0 / 0
20.08.2020, 10:09
    #39991048
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
del
...
Рейтинг: 0 / 0
20.08.2020, 10:25
    #39991053
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
123йй,
Код: plsql
1.
(trunc(sysdate) + trunc((sysdate+1/144-trunc(sysdate))*48)/48)+2/144 
...
Рейтинг: 0 / 0
20.08.2020, 11:49
    #39991074
GlooBus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
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
20.08.2020, 12:37
    #39991089
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
А еще можно устанавливать переменную next_date прямо внутри задания
Примеров на форуме есть
...
Рейтинг: 0 / 0
20.08.2020, 14:16
    #39991133
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
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
20.08.2020, 15:45
    #39991152
GlooBus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_JOBS INTERVAL каждые целые 15 минут
SY
Перестань изобретать велосипеды. Сказали-же, переходи на DBMS_SCHEDULER.

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

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


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