powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ждать без sleep
8 сообщений из 83, страница 4 из 4
ждать без sleep
    #34592660
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор странный, это факт
...
Рейтинг: 0 / 0
ждать без sleep
    #34592673
ГостЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Splain Muxx19869i

Тогда придется самостоятельно все писать.
...


А если не самостоятельно , то что имелось ввиду?

P.S Автор немножко партизан:)
...
Рейтинг: 0 / 0
ждать без sleep
    #34592710
Splain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГостЪ
А если не самостоятельно , то что имелось ввиду?


В 10g по слухам подобное можно сделать с помощью пакета DBMS_SCHEDULER
Oracle® Database Administrator's Guide 10g Release 2 Scheduler Concepts
...
Рейтинг: 0 / 0
ждать без sleep
    #34593252
spat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Splain Gluk (Kazan)
В тему не вникал, просто любопытно:
а что в один job все это засунуть не судьба ???

Думаю что можно.
Но автор упорно хочет выполнять функции в отдельных job-ах.

А потом автор придёт с вопросом, почему у него в системе кол-во одновременно открытых сессий достигло максимума. Джоба - фоновый процесс, и если нет необходимости именно в фоновой работе (например, расчёт каких-нибудь отчётов по расписанию), имхо, обойдитесь лучше другими более лёгкими для базы средствами в рамках своей сессии.
...
Рейтинг: 0 / 0
ждать без sleep
    #34593609
Splain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spat
А потом автор придёт с вопросом, почему у него в системе кол-во одновременно открытых сессий достигло максимума.

См. параметр JOB_QUEUE_PROCESSES
...
Рейтинг: 0 / 0
ждать без sleep
    #34593718
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spat Splain Gluk (Kazan)
В тему не вникал, просто любопытно:
а что в один job все это засунуть не судьба ???

Думаю что можно.
Но автор упорно хочет выполнять функции в отдельных job-ах.

А потом автор придёт с вопросом, почему у него в системе кол-во одновременно открытых сессий достигло максимума. Джоба - фоновый процесс, и если нет необходимости именно в фоновой работе (например, расчёт каких-нибудь отчётов по расписанию), имхо, обойдитесь лучше другими более лёгкими для базы средствами в рамках своей сессии.

низачот
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ждать без sleep
    #39706880
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, тема старая, но в поиске вылезает первой,
прошло много лет - появились новые варианты для гурманов, не употребляющих dbms_lock,
цитата отсюда:
https://oracledeli.wordpress.com/2017/03/31/plsql-sleep-without-using-dbms_lock/

Option 1: APEX_UTIL.sleep
If APEX is installed you can use the procedure “PAUSE” from the publicly available package APEX_UTIL.

Example – “Wait 5 seconds”:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
SET SERVEROUTPUT ON ;
BEGIN
    DBMS_OUTPUT.PUT_LINE('Start ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
    APEX_UTIL.PAUSE(5);
    DBMS_OUTPUT.PUT_LINE('End   ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
END;
/


Option 2: java.lang.Thread.sleep
An other option is the use of the method “sleep” from the Java class “Thread”, which you can easily use through providing a simple PL/SQL wrapper procedure:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE OR REPLACE PROCEDURE SLEEP (P_MILLI_SECONDS IN NUMBER) 
AS LANGUAGE JAVA NAME 'java.lang.Thread.sleep(long)';
Note: Please remember, that “Thread.sleep” uses milli seconds!

Example – “Wait 5 seconds”:

SET SERVEROUTPUT ON ;
BEGIN
    DBMS_OUTPUT.PUT_LINE('Start ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
    SLEEP(5 * 1000);
    DBMS_OUTPUT.PUT_LINE('End   ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
END;
/
...
Рейтинг: 0 / 0
ждать без sleep
    #39706888
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для Оракла 18 новое щастье:
цитата отсюда https://oracle-base.com/articles/18c/dbms_session-sleep-18c

DBMS_SESSION.SLEEP Replaces DBMS_LOCK.SLEEP in Oracle Database 18c
The SLEEP procedure is added to the DBMS_SESSION package and deprecated from the DBMS_LOCK package in Oracle Database 18c.


The SLEEP procedure is added to the DBMS_SESSION package, so it is available to all sessions with no additional grants needed and no dependency on the DBMS_LOCK package.

The procedure suspends the session for the specified number of seconds. The seconds parameter can accept any valid number, including fractions of a second.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SET SERVEROUTPUT ON
BEGIN
  sys.DBMS_OUTPUT.put_line('Time 1: ' || TO_CHAR(SYSTIMESTAMP, 'HH24:MI:SS.FF'));

  -- Pause for 1 second.
  sys.DBMS_SESSION.sleep(1);

  sys.DBMS_OUTPUT.put_line('Time 2: ' || TO_CHAR(SYSTIMESTAMP, 'HH24:MI:SS.FF'));

  -- Pause for half a second.
  sys.DBMS_SESSION.sleep(0.5);

  sys.DBMS_OUTPUT.put_line('Time 3: ' || TO_CHAR(SYSTIMESTAMP, 'HH24:MI:SS.FF'));
END;
/
Time 1: 19:52:52.957473000
Time 2: 19:52:53.957187000
Time 3: 19:52:54.457213000

PL/SQL procedure successfully completed.

SQL>



ВАЖНО:
The Oracle 18c documentation no longer lists the SLEEP procedure in the DBMS_LOCK package, but it is still present for backwards compatibility. It is now deprecated, so you should transition your code to use the DBMS_SESSION package instead, and revoke any grants to the DBMS_LOCK package where they were only granted to give access to the SLEEP procedure.
...
Рейтинг: 0 / 0
8 сообщений из 83, страница 4 из 4
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ждать без sleep
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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