我有个存储过程 A 大概运行时间是2个小时,
现在写了个自动的作业 B,定时每天8点运行 
然后有些了个手动的作业 C ,随时可以运行。
都是调用A过程 目的是如果自动作业出错了 可以手动运行,
但是会出现这样情况,就是如果自从作业中的过程每天8点正常运行中。另一个人不知道 8点半过来又启动了手动作业
或者7点有人过来启动了手动作业,但是8点自动左右又开始运行 
这样就有可能冲突。这样有什么好的办法解决么 ?还有个问题就是 在A过程我有个 返出参数 vo_msg  out varchar2
如果用B作业调用,最后运行查看作业日志表 会出现数字或者类型错误 作业运行失败的记录
但是如果 A过程中 那个VO_MSG参数取掉就没问题,不想去掉让作业返出来A的参数 一个怎么做 ?

解决方案 »

  1.   

    任务的存储过程添加通过SELECT * FROM Dba_Jobs_Running,判断是否任务已经在执行,如果在执行就不让它重复执行。
      

  2.   

    我这个用户没SYSDBA权限。 而且现在这个存储过程是给一般客户来执行的,不是给DBA用的 
    还有什么别的方法么第2个问题怎么解决啊 
      

  3.   

    grant select on dba_jobs_running to youruser;