Alterar Job de outro usuário
Não sei se alguém sabe um jeito mais fácil de alterar Jobs de usuários sem ter ou alterar a senha deles, mas segue aqui como consegui.
[oracle@Oracle-01 ~]$ sqlplus SCOTT/TIGER
SQL*Plus: Release 11.2.0.1.0 Production on Thu Sep 9 13:30:14 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
SQL> VARIABLE JOB NUMBER
SQL> EXEC DBMS_JOB.SUBMIT( :JOB, 'NULL;', SYSDATE, 'TRUNC(SYSDATE+1)' )
PL/SQL procedure successfully completed.
SQL> CONN / AS SYSDBA
Connected.
SQL> SET PAGES 1000
SQL> SET LINES 210
SQL> COL WHAT FORMAT A20
SQL> /
JOB SCHEMA_USER WHAT NEXT_DATE B
---------- ------------------------------ -------------------- --------- -
3 SCOTT NULL; 10-SEP-10 N
SQL> EXEC DBMS_JOB.RUN(3);
BEGIN DBMS_JOB.RUN(3); END;
*
ERROR at line 1:
ORA-23421: job number 3 is not a job in the job queue
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.DBMS_IJOB", line 793
ORA-06512: at "SYS.DBMS_JOB", line 267
ORA-06512: at line 1
SQL> CREATE PROCEDURE SCOTT.BREAK_JOB (JOB BINARY_INTEGER, BROKEN BOOLEAN)
2 AUTHID DEFINER
3 IS
4 BEGIN
5 DBMS_JOB.BROKEN(JOB, BROKEN);
6 END;
7 /
Procedure created.
SQL> SELECT JOB, SCHEMA_USER, WHAT, NEXT_DATE, BROKEN FROM DBA_JOBS WHERE SCHEMA_USER = 'SCOTT';
JOB SCHEMA_USER WHAT NEXT_DATE B
---------- ------------------------------ -------------------- --------- -
3 SCOTT NULL; 10-SEP-10 N
SQL> EXEC SCOTT.BREAK_JOB(3, TRUE);
PL/SQL procedure successfully completed.
SQL> SELECT JOB, SCHEMA_USER, WHAT, NEXT_DATE, BROKEN FROM DBA_JOBS WHERE SCHEMA_USER = 'SCOTT';
JOB SCHEMA_USER WHAT NEXT_DATE B
---------- ------------------------------ -------------------- --------- -
3 SCOTT NULL; 01-JAN-00 Y
SQL>
Grande Portilho,
Tudo bem?
Faz tempo que não tenho uma demanda dessas, mas quando precisei alterar job de outro usuário, eu usei a DBMS_IJOB.
Abraços
Vinicius
Blz Vinicius?
Pois é, ontem um amigo do trabalho me falou da DBMS_IJOB também. Como raramente eu faço algo com Jobs, não conhecia.
Caso não exista no Banco, ela é criada com o script $ORACLE_HOME/rdbms/admin/prvtjob.plb.
Grande abraço !