Vou começar a postar algumas coisas sobre job's conforme vou me lembrando vou editando este post.
Desde já agradeço.
Para forçar a execução de algum job.
exec dbms_job.run(numero do job);
Para remover um job.
exec dbms_job.remove(numero do job);
Para colocar um job em Broken.
exe DBMS_JOB.BROKEN(numero do job,true);
Para retirar um job em broken.
exe DBMS_JOB.BROKEN(numero do job,false);
-- Aconselho a forçar a execução do mesmo.
Para alterar um job completo.
DBMS_JOB.CHANGE (
job IN BINARY_INTEGER,
what IN VARCHAR2,
next_date IN DATE,
interval IN VARCHAR2,
instance IN BINARY_INTEGER DEFAULT NULL,
force IN BOOLEAN DEFAULT FALSE);
-- Aconselho a utilizar o script abaixo.
Para recriar um job a partir de outro job.
set line 155
set feedback off
set pagesize 0
select 'DECLARE ' || CHR(10) || ' JOBNO INTEGER; ' || CHR(10) || ' BEGIN ' ||
CHR(10) || ' DBMS_JOB.SUBMIT(JOBNO, ''' || replace(WHAT,'''','''''') || ''',' || CHR(10) ||
'to_date('''|| to_char(next_date,'DD/MM/YYYY HH24:MI:SS') ||''',''DD/MM/YYYY HH24:MI:SS'')'||',' || CHR(10) || '''' || INTERVAL || ''');' || CHR(10) ||
'END;' || CHR(10) || '/'
from dba_jobs where log_user = upper('&log_user');
set line 132
set feedback on
set pagesize 14
/
Para alterar o what de um job.
exec DBMS_JOB.WHAT(numero do job,'novo what');
Para alterar a instance de um job.
exec DBMS_JOB.INSTANCE(numero do job,'instance');
Lembrando que todos os comandos foram escritos como se você fosse o dono do job.
Caso você não seja o dono do job você terá de efetuar a seguinte sintaxe.
exec sys.dbms_ijob.comando...
exemplo:
exec sys.dbms_ijob.run(numero do job);
Conforme comentei acima. Se eu for lembrando de outros comandos vou editando este post.
Desde já agradeço.
Não esqueça de efetuar commit apos os comandos efetuados.
ResponderExcluirou melhor, comece a usar dbms_scheduler