关于oracle9i中作业执行的2个疑问,请高手指点。
1、job不能自动执行需要设置在init.ora中加入:
job_queue_interval = 60
job_queue_processes = 3,如果没有这项,下次重新启动机器时,job也不能自动执行。
非常奇怪的是默认安装的init.ora中没有这两项,而且用一下2条语句不能修改:
ALTER SYSTEM SET job_queue_processes=5 SCOPE=SPFILE;
ALTER SYSTEM SET job_queue_processes=5 SCOPE=both;
提示:ERROR 位于第 1 行:
ORA-32001: 已请求写入 SPFILE, 但是在启动时未指定 SPFILE
只能用alter system set job_queue_processes=1;
能不能让系统自动增加job_queue_processes = 3?且
ALTER SYSTEM SET job_queue_processes=5 SCOPE=SPFILE;
ALTER SYSTEM SET job_queue_processes=5 SCOPE=both; 为什么会出错?
2、我做了个job的简单测试:
建表:
create table a(a1 date);
创建过程:
create or replace procedure test as
begin
insert into a values(sysdate);
commit;
end;
/
创建job:
VARIABLE jobno number;
begin
dbms_job.submit(:jobno,
'test;',
sysdate,
'trunc(sysdate,''hh24'')+1/24'); --每小时执行一次
commit;
end;
/
运行job:
begin
dbms_job.run(:jobno);
end;
/
按理说,这个job是1小时执行一次,也就是说一小时才插入一条纪录,可我发现每分钟估计有4条纪录,好像和'trunc(sysdate,''hh24'')+1/24'没有什么关系!这是为什么呢?我现在需要在每天的10:30运行一次job,该怎么做呢?
谢谢

