"alter session set current_schema"||"dbms_job" vs "dbms_ijob"

Parkhomets Andrey
Дата: 01.06.2006 16:42:58
У меня к уважаемой публике вопрос:
по идее подлючившись в SQL Plus под SYS
и выполнив alter session set current_schema=SOME_DUMMY_USER;
я имею все права на ждобы юзера через пакет dbms_job. Но это не так.
На примере 9i.2.0.7 - dbms_job.broken , я не смог овладеть джобой принадлежащей пользователю "SOME_DUMMY_USER" - получается : "ORA-23421: job number ХХХХ is not a job in the job queue "
Вылечивается это через DBMS_iJOB. - но пакет за-Wrap-лен, это мне не нравится.

Вопрос как правильно манагать SYS-у юзверевские джобы ?
YAP
Дата: 01.06.2006 16:53:11
set current_schema влияет только на разрешение имен, вродь как...
raw_
Дата: 01.06.2006 17:36:02
Можно SYSом вызывать пакет USERа:
create or replace package my_jobs as 
PROCEDURE broken    ( job       IN  BINARY_INTEGER,
                        broken    IN  BOOLEAN,
                        next_date IN  DATE DEFAULT SYSDATE );
.............................................................
end;
/
create or replace package body my_jobs as 
PROCEDURE broken    ( job       IN  BINARY_INTEGER,
                        broken    IN  BOOLEAN,
                        next_date IN  DATE DEFAULT SYSDATE ) is
begin
   dbms_job.broken(job, broken, next_date);
end;
.............................................................
end;
/
Вячеслав Любомудров
Дата: 02.06.2006 02:27:02
tst> connect u1/u1@tst
Connected.
tst> var j number
tst> exec dbms_job.submit(:j, 'null;', sysdate, 'sysdate+10/24/60/60')

PL/SQL procedure successfully completed.

tst> commit;

Commit complete.

tst> print j

         J
----------
       111

tst> connect sys/sys@tst_d as sysdba
Connected.
tst> select last_sec, this_sec, next_sec, broken from dba_jobs;

LAST_SEC THIS_SEC NEXT_SEC B
-------- -------- -------- -
09:25:06          09:25:16 N

tst> /

LAST_SEC THIS_SEC NEXT_SEC B
-------- -------- -------- -
09:25:21          09:25:31 N

tst> update job$ set flag=1 where job=:j;

1 row updated.

tst> commit;

Commit complete.

tst> select last_sec, this_sec, next_sec, broken from dba_jobs;

LAST_SEC THIS_SEC NEXT_SEC B
-------- -------- -------- -
09:26:06          09:26:16 Y

tst> 
Elic
Дата: 02.06.2006 08:28:56
Вячеслав Любомудров
tst> update job$ ...
Пожалуй, это самый худший из всех способов :)