Using DBMS_IJOB (undocumented), we can manipulate dbms jobs.
Ofcouse, DBMS_JOB is the best known interface for manipulating jobs, but DBMS_IJOB let us even change the LOG_USER ,PRIV_USER and SCHEMA_USER of a dbms job. In this way, we don't need to recreate the job for such a change.
Here is a demo;
SQL> DECLARE
X NUMBER;
BEGIN
begin
SYS.DBMS_JOB.SUBMIT
(
job => X
,what => 'null;'
,next_date => to_date('01.27.2021 16:59:35','mm/dd/yyyy hh24:mi:ss')
,interval => 'TRUNC(SYSDATE+1)'
,no_parse => FALSE);
exception
when others then
begin
raise;
end;
end;
END;
/
PL/SQL procedure successfully completed.
SQL> select job,log_user,priv_user,schema_user,interval from dba_jobs where what='null;';
JOB LOG_USER PRIV_USER SCHEMA_USER INTERVAL
286 SYS SYS SYS TRUNC(SYSDATE+1)
SQL> begin
for j in (select * from dba_jobs where job = 286)
loop
dbms_ijob.change_env(j.job, 'APPS', 'APPS', 'APPS', j.nls_env);
end loop;
commit;
end;
/
PL/SQL procedure successfully completed.
SQL> select job,log_user,priv_user,schema_user,interval from dba_jobs where what='null;'
JOB LOG_USER PRIV_USER SCHEMA_USER INTERVAL
286 APPS APPS APPS TRUNC(SYSDATE+1)
X NUMBER;
BEGIN
begin
SYS.DBMS_JOB.SUBMIT
(
job => X
,what => 'null;'
,next_date => to_date('01.27.2021 16:59:35','mm/dd/yyyy hh24:mi:ss')
,interval => 'TRUNC(SYSDATE+1)'
,no_parse => FALSE);
exception
when others then
begin
raise;
end;
end;
END;
/
PL/SQL procedure successfully completed.
SQL> select job,log_user,priv_user,schema_user,interval from dba_jobs where what='null;';
JOB LOG_USER PRIV_USER SCHEMA_USER INTERVAL
286 SYS SYS SYS TRUNC(SYSDATE+1)
SQL> begin
for j in (select * from dba_jobs where job = 286)
loop
dbms_ijob.change_env(j.job, 'APPS', 'APPS', 'APPS', j.nls_env);
end loop;
commit;
end;
/
PL/SQL procedure successfully completed.
SQL> select job,log_user,priv_user,schema_user,interval from dba_jobs where what='null;'
JOB LOG_USER PRIV_USER SCHEMA_USER INTERVAL
286 APPS APPS APPS TRUNC(SYSDATE+1)
No comments :
Post a Comment
If you will ask a question, please don't comment here..
For your questions, please create an issue into my forum.
Forum Link: http://ermanarslan.blogspot.com.tr/p/forum.html
Register and create an issue in the related category.
I will support you from there.