Задержка времени - как сделать

Bucher
Дата: 25.11.2009 12:56:57
Подскажите как организуется задержка времени при выполнении скрипта.
Т.е. нужно чтобы следующий стейтмент выполнялся через промежуток времени от предыдущего.
pravednik
Дата: 25.11.2009 13:00:41
DBMS_LOCK.SLEEP
tru55
Дата: 25.11.2009 13:02:12
BEGIN
  dbms_output.put_line(to_char(sysdate, 'hh24:mi:ss'));
  dbms_lock.sleep(10);
  dbms_output.put_line(to_char(sysdate, 'hh24:mi:ss'));
END;
-2-
Дата: 25.11.2009 13:05:29
pravednik,

оракл советует юзать user_lock вместо dbms_lock.
Bucher
Дата: 25.11.2009 13:05:56
Не работает, видимо админы не подключили пакет DBMS_LOCK.
Есть ли другие варианты?
wurdu
Дата: 25.11.2009 13:08:22
Bucher
Не работает, видимо админы не подключили пакет DBMS_LOCK.
Есть ли другие варианты?
Попросить дать grant execute на этот пакет.
tru55
Дата: 25.11.2009 13:08:38
Bucher
Не работает, видимо админы не подключили пакет DBMS_LOCK.
Есть ли другие варианты?


"не подключили" скорее всего означает "не выдали права"
orawish
Дата: 25.11.2009 13:27:05
-2-
pravednik,

оракл советует юзать user_lock вместо dbms_lock.

ну, типа, правильно советует. пакет то (dbms_lock) - будьте здоровы, а не фиг собачий..
только тот user_lock, как минимум - иметь надо ;)
-2-
Дата: 25.11.2009 14:34:47
orawish
только тот user_lock, как минимум - иметь надо ;)
Для админа несколько:
grant execute on dbms_lock to applicationX with grant option
супротив один:
@userlock.sql
Решение за ним...
Trumen
Дата: 25.11.2009 15:11:22
pravednik
DBMS_LOCK.SLEEP


Не советую использовать задержку промежутком больше часа. Процедура тогда начинает работать неверно, и может держать паузу непредсказуемое время.

На металинке есть описание проблемы и нет решения для нее.