Вот простая работа.
SQL> create table log1 (ts timestamp)
2 /
Table created.
SQL> create or replace procedure printe as
2 begin
3 insert into log1 values (systimestamp);
4 commit;
5 end;
6 /
Procedure created.
SQL>
Итак, первое, что нужно сделать, это правильно указать время начала и интервал. Если вы не можете вспомнить, сколько минут в день (1440), рекомендуется использовать скобки. Давайте сравним отправку работы с вашими спецификациями даты ...
SQL> var job_no number
SQL> BEGIN
2 DBMS_JOB.SUBMIT
3 (
4 job =>:job_no,
5 WHAT=>'printe;',--Procedure
6 next_date=>sysdate+1/24*60,
7 interval=>'sysdate+1/24*60'
8 );
9 commit;
10 END;
11 /
PL/SQL procedure successfully completed.
SQL> print job_no
JOB_NO
----------
71
SQL>
... в скобках для подтверждения приоритета ...
SQL> BEGIN
2 DBMS_JOB.SUBMIT
3 (
4 job =>:job_no,
5 WHAT=>'printe;',--Procedure
6 next_date=>sysdate+1/(24*60),
7 interval=>'sysdate+1/(24*60)'
8 );
9 commit;
10 END;
11 /
PL/SQL procedure successfully completed.
SQL> print job_no
JOB_NO
----------
72
SQL>
Очевидно, что задание 71 еще не запущено и еще не будет выполняться в течение некоторого времени:
SQL> select job, what, last_date, next_date, interval
2 from user_jobs
3 where job in (71,72)
4 /
JOB WHAT LAST_DATE NEXT_DATE INTERVAL
------ ------------ -------------------- -------------------- -----------------
71 printe; 05-MAY-2010 17:35:34 sysdate+1/24*60
72 printe; 03-MAY-2010 05:44:42 03-MAY-2010 05:45:34 sysdate+1/(24*60)
SQL>
Мониторинг задания 72 ....
SQL> select * from log1
2 /
TS
-------------------------------------------------------------------
03-MAY-10 05:43:39.250000
03-MAY-10 05:44:42.296000
SQL>
Итак, если это все еще не работает для вас, что вы должны делать? Прежде всего, нужно проверить, настроена ли база данных для выполнения заданий вообще. Для этого вам потребуется доступ DBA.
SQL> select value
2 from v$parameter
3 where name='job_queue_processes'
4 /
VALUE
-------------------------
1000
SQL>
Если я правильно помню, в Oracle 9i значение по умолчанию для этого параметра равно 0. Для выполнения заданий необходимо установить ненулевое значение.
И если это не проблема, вам нужно проверить сообщения об ошибках в журнале предупреждений. В каталоге background_dump_dest
также могут быть некоторые файлы .trc, созданные в результате сбоя задания.