oracle job 怎么不自动执行

xli520 2008-09-18 10:27:54
一.建储存过程
create or replace procedure rgl_b_rjl_proc
is
begin

insert into rgl_b_rjl(bh,userid,xmh,dx)
select rgl_create_bh('1'),userid,xmh,dx
from rgl_b_rjh a
where 1=1
commit;
end;
二.建作业
begin
sys.dbms_job.submit(job => :job,
what => 'rgl_b_rjl_proc;',
next_date => to_date('18-09-2008 10:06:41', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+1/1440');
commit;
end;
三.运行job
begin
dbms_job.run(7);//job 是7
end;
手动运行 dbms_job.run(7) 是可以往表里插入一条数据的。
可它为什么不是每隔1分钟自动执行呢?
要让job自动运行,是不是还要设置哪个地方的?
问题解决就结贴
...全文
913 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xli520 2008-10-08
  • 打赏
  • 举报
回复
job是每分重执行一次的
自己解决了,其实只要启动
OracleServiceORCL
就可以了
解决方法:
1.确保 job 是没问题的,而且是每分重插入一条数据
begin
dbms_job.run(1);
commit;
end;
是可以插入数据
2.重新启动 OracleServiceORCL ,OracleOraHome90TNSListener
3.登陆 sql\plus
4.ALTER SYSTEM SET job_queue_processes = 20;
commit;
5.这样就ok
xli520 2008-09-24
  • 打赏
  • 举报
回复
数据库什么版本??
oracle9i
select * from v$timer; 的结果是什么?
196925931
xli520 2008-09-18
  • 打赏
  • 举报
回复
next_date => to_date('18-09-2008 10:06:41', 'dd-mm-yyyy hh24:mi:ss'),
指的是结束日吧
换成'18-09-2018 试试
---------
也是不行 郁闷死
robin_ares 2008-09-18
  • 打赏
  • 举报
回复
next_date => to_date('18-09-2008 10:06:41', 'dd-mm-yyyy hh24:mi:ss'),
指的是结束日吧
换成'18-09-2018 试试
xli520 2008-09-18
  • 打赏
  • 举报
回复
我在sys权限下测试没有问题:

难道你的
SQL> show parameters job_;

NAME TYPE VALUE
------------------------------------ ----------- ----------
job_queue_processes integer 10
SQL>


job总数已经超过这个值?

------------------------
job 才有两个 作业
xli520 2008-09-18
  • 打赏
  • 举报
回复
what => 'rgl_b_rjl_proc;',
加上'用户.'
-----------
加上用户也不行
'system.rgl_b_rjl_proc;'
xli520 2008-09-18
  • 打赏
  • 举报
回复
last_date:2008-9-18 10:44:08
next_date:2008-9-18 10:45:08
现在系统时间是:2008-9-18 10:44:28
可超过 next_date:2008-9-18 10:45:08 了,
怎么没往表里插入数据呢?
真怪
commit;也有啊
hyrongg 2008-09-18
  • 打赏
  • 举报
回复
我在sys权限下测试没有问题:

难道你的
SQL> show parameters job_;

NAME TYPE VALUE
------------------------------------ ----------- ----------
job_queue_processes integer 10
SQL>


job总数已经超过这个值?


SQL> create table t(idx int);

Table created

SQL>
SQL> create or replace procedure rgl_b_rjl_proc
2 is
3 begin
4 insert into t values(1);
5 commit;
6 end;
7 /

Procedure created

SQL>
SQL> variable job number;
SQL> begin
2 sys.dbms_job.submit(job => :job,
3 what => 'rgl_b_rjl_proc;',
4 next_date => to_date('18-09-2008 10:06:41', 'dd-mm-yyyy hh24:mi:ss'),
5 interval => 'sysdate+1/1440');
6 commit;
7 end;
8 /

PL/SQL procedure successfully completed
job
---------
1

SQL> select * from dba_jobs;

JOB LOG_USER PRIV_USER SCHEMA_USER LAST_DATE LAST_SEC THIS_DATE THIS_SEC NEXT_DATE NEXT_SEC TOTAL_TIME BROKEN INTERVAL FAILURES WHAT NLS_ENV MISC_ENV INSTANCE
---------- ------------------------------ ------------------------------ ------------------------------ ----------- -------------------------------- ----------- -------------------------------- ----------- -------------------------------- ---------- ------ -------------------------------------------------------------------------------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------- ----------
1 SYS SYS SYS 9/18/08 10: 10:39:46 9/18/08 10: 10:40:46 0 N sysdate+1/1440 0 rgl_b_rjl_proc; NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$' NLS_ISO_CURRENC 0102000202000000 0

SQL> select * from dba_jobs;

JOB LOG_USER PRIV_USER SCHEMA_USER LAST_DATE LAST_SEC THIS_DATE THIS_SEC NEXT_DATE NEXT_SEC TOTAL_TIME BROKEN INTERVAL FAILURES WHAT NLS_ENV MISC_ENV INSTANCE
---------- ------------------------------ ------------------------------ ------------------------------ ----------- -------------------------------- ----------- -------------------------------- ----------- -------------------------------- ---------- ------ -------------------------------------------------------------------------------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------- ----------
1 SYS SYS SYS 9/18/08 10: 10:39:46 9/18/08 10: 10:40:46 0 N sysdate+1/1440 0 rgl_b_rjl_proc; NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$' NLS_ISO_CURRENC 0102000202000000 0

SQL> exec dbms_job.run(1);

PL/SQL procedure successfully completed

SQL> select * from t;

IDX
---------------------------------------
1
1

SQL> select * from t;

IDX
---------------------------------------
1
1

SQL> select * from t;

IDX
---------------------------------------
1
1
1

SQL>
robin_ares 2008-09-18
  • 打赏
  • 举报
回复
what => 'rgl_b_rjl_proc;',
加上'用户.'
oracledbalgtu 2008-09-18
  • 打赏
  • 举报
回复
数据库什么版本??
select * from v$timer; 的结果是什么?

[Quote=引用楼主 xli520 的帖子:]
一.建储存过程
create or replace procedure rgl_b_rjl_proc
is
begin

insert into rgl_b_rjl(bh,userid,xmh,dx)
select rgl_create_bh('1'),userid,xmh,dx
from rgl_b_rjh a
where 1=1
commit;
end;
二.建作业
begin
sys.dbms_job.submit(job => :job,
what => 'rgl_b_rjl_proc;',
next_date => to_date('18-09-…
[/Quote]
xli520 2008-09-18
  • 打赏
  • 举报
回复
我发现
select * from dba_jobs_running
没有数据,怪
xli520 2008-09-18
  • 打赏
  • 举报
回复
show parameter job_queue_process;

job_queue_process 的值是等于 20;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧