2012-06-28 4 views
0

Я получил следующее сообщение об ошибке, используя следующий код:Oracle: ошибка при использовании 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 Database. Он должен быть DBMS_JOB.

+0

DBMS_IJOB - это допустимое имя пакета, оно просто недокументировано – APC

2

Я думаю, вы не используете это как SYS. Либо вам нужно запустить его как SYS, либо вам нужен DBA, чтобы предоставить вам права на выполнение в пакете.

2

В то время как @APC соответствует тому, что это проблема с разрешениями, я бы очень поставил под вопрос, почему вы используете пакет DBMS_IJOB в первую очередь. Это недокументированный внутренний пакет, а не тот, который обычно должен использоваться разработчиками. И есть совершенно хороший RUN процедура в обществе, документально DBMS_JOB пакет, который вы можете использовать вместо

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

Там нет оснований использовать внутренний, недокументированные пакет, когда общественность, документированы пакет имеет способ сделать то, что вы хотите.

+0

Мне нужно запустить JOB, принадлежащее схеме из другой схемы. Задача уже существует, и я могу предоставить все. Как я могу решить? – Revious

+1

@ Gik25 - Можете ли вы создать процедуру в схеме, которая владеет заданием, выполняющим задание, и предоставить пользователю доступ к EXECUTE для этой процедуры для пользователя, которому необходимо выполнить задание? –

+0

Да, действительно хорошая идея. Благодаря!!! – Revious

 Смежные вопросы

  • Нет связанных вопросов^_^