2012-06-28 62 views
0

的错误,我已经得到了使用下面的代码以下错误:甲骨文:使用DMBS_IJOBS

BEGIN 
    sys.dbms_ijob.run(25950); 
    COMMIT; 
EXCEPTION 
    WHEN others 
    THEN 
     DBMS_OUTPUT.put_line (SQLERRM); 
     RAISE; 
END; 

ORA-06550: line 2, column 5: 
PLS-00201: identifier 'SYS.DBMS_IJOB' must be declared 
ORA-06550: line 2, column 5: 
PL/SQL: Statement ignored 

回答

-1

我不认为有一个叫DBMS_IJOB在Oracle数据库包。它应该是DBMS_JOB

+0

DBMS_IJOB是一个有效的包名称,它只是无证 – APC

2

我想你没有运行这个作为SYS。您需要将其作为SYS运行,或者需要DBA授予您在程序包上的执行权限。

2

虽然@APC是correc,这是一个权限问题,我会强烈质疑,为什么您使用的是DBMS_IJOB包摆在首位。这是一个无证的内部包,而不是开发人员通常应该使用的东西。并且在公众一个完美RUN程序,记录DBMS_JOB包,您可以改用

BEGIN 
    dbms_job.run(25950); 
    commit; 
END; 
/

没有理由使用内,无证包时公开,记录包有做什么的方法你要。

+0

我需要运行从另一个模式的架构所拥有的工作。 JOB已经存在,我可以授予一切。我该如何解决? – Revious

+1

@ Gik25 - 您可以在架构中创建一个过程,该架构拥有执行作业的作业,并将该过程的'EXECUTE'访问授予需要运行该作业的用户? –

+0

是的,真是个好主意。谢谢!!! – Revious