我执行计划任务是以system身份执行的.
sp_tjh过程属于system,而且也有执行dbms_job包的权限.SQL> show parameter job_queue_processes;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 10
这是我的存储过程:
create or replace procedure sp_tjh is
begin
insert into t_tjh
(c_id,c_name)
values
(to_char(sysdate),to_char(sysdate));
commit;
end sp_tjh;
测试成功.
向服务器提交任务计划:
SQL> variable n number;
SQL> begin
2 dbms_job.submit(:n, 'sp_tjh;',trunc(sysdate),'trunc(sysdate)+15/24');
3 commit;
4 end;
5 /PL/SQL procedure successfully completed
n
---------
89查看任务队列:
SQL> select job,next_date,next_sec,failures,broken from user_jobs; JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
---------- ----------- ---------------- ---------- ------
89 2006-10-11 15:00:00 0 N手工提前执行:
SQL> begin
2 DBMS_JOB.RUN(89);
3 end;
4 /PL/SQL procedure successfully completed
而且检查表t_tjh中已经新插入一行.手工提前执行就成功的,可是等到计划时间时却不能够执行,请问这是那个地方的设置不正确?
sp_tjh过程属于system,而且也有执行dbms_job包的权限.SQL> show parameter job_queue_processes;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 10
这是我的存储过程:
create or replace procedure sp_tjh is
begin
insert into t_tjh
(c_id,c_name)
values
(to_char(sysdate),to_char(sysdate));
commit;
end sp_tjh;
测试成功.
向服务器提交任务计划:
SQL> variable n number;
SQL> begin
2 dbms_job.submit(:n, 'sp_tjh;',trunc(sysdate),'trunc(sysdate)+15/24');
3 commit;
4 end;
5 /PL/SQL procedure successfully completed
n
---------
89查看任务队列:
SQL> select job,next_date,next_sec,failures,broken from user_jobs; JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
---------- ----------- ---------------- ---------- ------
89 2006-10-11 15:00:00 0 N手工提前执行:
SQL> begin
2 DBMS_JOB.RUN(89);
3 end;
4 /PL/SQL procedure successfully completed
而且检查表t_tjh中已经新插入一行.手工提前执行就成功的,可是等到计划时间时却不能够执行,请问这是那个地方的设置不正确?
SQL> begin
dbms_job.submit(:n, 'sp_tjh;', sysdate,'trunc(sysdate+1)+15/24');
end;
/
SQL> begin
dbms_job.run(:n);
end;
/
PL/SQL是一个强大的东东.
pl/sql是个好东东,
不外呼两个原因:
1、job_queue_processes值没有设置
2、job启动时间有误
楼主查看下,是不是启动时间设置出了问题,还是根本就没有设
job next_date, next_sec, failures, broken
1 89 2006-10-12 15:00:00 15:00:00 0 N
2 90 2006-10-12 15:30:00 15:30:00 0 N请各位兄弟判断为什么到时不能够自动执行的原因!!!
------------------------------------ ----------- ------------------------------
job_queue_processes integer 10可以把这个值再设置高一点
------------------------------------ ----------- ------------------------------
job_queue_processes integer 10楼主肯定少于10个job吗?
$/HOME/oracle/admin/数据库名/pfile/init.ora找到
##########
#进程
#########
processes = ***后面加入
job_queue_processes = 20
################
就OK了.
SQL> show parameter processes;可以查看设置情况.
谢谢你的帮忙!我这就试试!