windows XP系统下,ORACLE 10g版本
我想在建一个JOB脚本在PL/SQL导入,
想实现的功能是:每隔一分钟执行一遍SL_SP_HLOG存储过程。
脚本如下:declare job number;
begin
dbms_job.submit(job,
'SL_SP_HLOG;',
sysdate,
'trunc(sysdate)+1/(24*60)'
);
commit;
end;运行结果报错如下:
ORA-23420: ????????????????
ORA-06512: ? "SYS.DBMS_JOB",line 57
ORA-06512: ? "SYS.DBMS_JOB",line 57
ORA-06512: ? line 57
我想在建一个JOB脚本在PL/SQL导入,
想实现的功能是:每隔一分钟执行一遍SL_SP_HLOG存储过程。
脚本如下:declare job number;
begin
dbms_job.submit(job,
'SL_SP_HLOG;',
sysdate,
'trunc(sysdate)+1/(24*60)'
);
commit;
end;运行结果报错如下:
ORA-23420: ????????????????
ORA-06512: ? "SYS.DBMS_JOB",line 57
ORA-06512: ? "SYS.DBMS_JOB",line 57
ORA-06512: ? line 57
解决方案 »
- oracle 11g r2 登陆em 报 证书错误
- 在oracle中如何将varchar类型转换成raw类型
- 8i的dba studio 进不去了,怎样解决?
- 在oracle中另建一个数据库的问题
- 求助:有sql高级查询(请高手帮忙,要求运行速度快)
- oracle 升级后系统反而变慢10.2.0.4->11.2.0.4由30秒到48分钟。伤不起啊
- 如何实现Oracle7数据库自动备份?(急,在线等)
- 简单却又很玄的问题,希望各位朋友热心参与讨论
- 如何理解行级触发器
- vb开发oracle数据库的问题!
- 向数据库中导入imp一个表oracle 10g 实现的错误 麻烦帮忙看下 在线等!
- 建表问题,不知道怎么建合理
what栏输入:SL_SP_HLOG;
next date栏输入:sysdate
interval栏输入:trunc(sysdate)+1/24+1还是会报ORA-06550错误。
你的trunc(sysdate)的时间是当天的0点,是一个过去的时间,你需要把它设置成未来的时间
应该这样:
declare job number;
begin
dbms_job.submit(job,
'SL_SP_HLOG;',
sysdate,
'trunc(sysdate) + 1 + 1/(24*60)',
true
);
commit;
end;
job number;
begin
sys.dbms_job.submit(job => job,
what => 'SL_SP_HLOG;',
next_date => sysdate,
interval => 'sysdate+ 1/(24*60)');
commit;
end;
/
不过还想多请教个问题:
next_date参数 指识何时将运行这个工作
那么这个参数带入sysdate是表示从创建这个job开始就会被运行吗?
查询一下看看
即下面的代码是可以在PL/SQL中成功被执行的。
declare
job number;
begin
sys.dbms_job.submit(job,
'SL_SP_HLOG;',
sysdate,
'sysdate+ 1/(24*60)',
ture
);
commit;
end;
/
------
linzi:
我查找过表user_jobs,是由job的,但是我看过我的目标表,没有新增数据,说明SL_SP_HLOG程序并没有被自动执行过。
---------------------------------------
4000-1-1 16 Ylast_date 空值
next_date 4000-1-1
failures 16
broken Y
select * from user_jobs;
查你的job号;
exec dbms_job.run(job号);
BEING
dbms_job.run(JOBNO);
END;
现在可以了。
我不知道是不是因为程序中的out参数引起的,我再测试下看看
定时器调用的过程看来是不允许返回参数的。
目前的问题应该算是解决了,学到了很多,谢谢各位的指点,辛苦辛苦了,祝圣诞节快乐O(∩_∩)O