由于同一个用户下建立两个job,一个成功一个失败,原本以为是对几个系统视图的权限问题(这个问题之前在这里提过,http://topic.csdn.net/u/20110218/16/cde9e29d-8b0a-4c69-a451-bc4abcc126f5.html,非常感谢luoyoumou朋友的热心帮助),但后来自己做了一个简单的存储过程并且用它做了一个job,执行成功,查看用户job可以看到它出现在列表里,说明job是可以创建的。但是现在需要执行的是一个稍复杂一些的存储过程(我直接运行里面的语句是无法运行的,有一些表不存在、远程服务器无法访问之类的问题,但是要求是要执行这些语句),所以想请教各位创建job时会检查job中要执行的语句吗?如果不是的话还有什么原因导致job无法创建呢?

解决方案 »

  1.   

    你的SP失效啊,会报错的,建立不了job,先把SP valided 后再建job
      

  2.   


    CREATE OR REPLACE procedure RKKCAS.prc_g_test 
    is
    begin
    null;
    end;
    /
    declare jobN number;
    begin
    sys.dbms_job.submit(jobN,'prc_g_test;',to_date('2011-02-18 15:00:00','yyyy-mm-dd hh24:mi:ss'),'sysdate+1/1440');
    end;
    --很简单的一个例子,如果你都创建号的话,应该是没有问题的,还是检查一下有没有创建吧,或者用户和权限问题
      

  3.   


    这个procedure 不是无效的
    创建作业的时候直接执行一个无效的存储过程是可以创建成功的,执行的时候会失败