Creación de Jobs en Oracle

paola O.
12 de Marzo del 2004
Si alguien sabe desde que utilitario de Oracle se crean los jobs o cual es su sentencia de creación, por favor responder a mi correo.

Yo encontre una opción desde el TOAD, lo cree, pero no corrió cuando lo programe, tal vez tenga que configurar algo más...
cualquier comentario lo agradeceré mucho.

Saludos,
Paola.

vmarquez
12 de Marzo del 2004
1. tengo un secillo procedimiento...

create or replace procedure prueba_job is
v_sequence number;
begin
select seq_job.nextval
into v_sequence
from dual;
end;

2. lo programo como job..

SQL> variable x number;
begin
dbms_job.submit( :x,'prueba_job;',sysdate,'sysdate + 1/48');
end;

donde sysdate es la fecha cuando se ejecuta mi job por ejemplo

aguas revisar los ';'

SQL> select sysdate from dual;

SYSDATE
---------
27-FEB-04

1* select to_char(sysdate, 'hh:mi' ) from dual
SQL> /

TO_CH
-----
04:46

y 1/48 es un factor de 24 horas despues de ejecutar mi jon es decir se ejecutara en media hora despues

05:15.....

3) como saber que job tengo como esquema?, en facturas por ejemplo

SQL> desc user_jobs
Name Null? Type
------------------------------- -------- ----
JOB NOT NULL NUMBER
LOG_USER NOT NULL VARCHAR2(30)
PRIV_USER NOT NULL VARCHAR2(30)
SCHEMA_USER NOT NULL VARCHAR2(30)
LAST_DATE DATE
LAST_SEC VARCHAR2(8)
THIS_DATE DATE
THIS_SEC VARCHAR2(8)
NEXT_DATE NOT NULL DATE
NEXT_SEC VARCHAR2(8)
TOTAL_TIME NUMBER
BROKEN VARCHAR2(1)
INTERVAL NOT NULL VARCHAR2(200)
FAILURES NUMBER
WHAT VARCHAR2(4000)
NLS_ENV VARCHAR2(4000)
MISC_ENV RAW(32)
INSTANCE NUMBER

1* select joB, substr(what,1,23), to_char(last_date,'HH:MI' ), TO_CHAR(NEXT_DATE,'MI:HH'), FAILURE
SQL> /

JOB SUBSTR(WHAT,1,23) TO_CH TO_CH FAILURES
--------- ----------------------- ----- ----- ---------
3 prueba_job; 04:37 07:05 0

CADA VEZ QUE SE EJECUTA UN JOB SI EL PROCESO A EJECUTAR TIENE UN ERROR ENFONTE LA COLUMNA FAILURES SE INCREMENTARA +1
CUANDO AL COLUMNA FAIULRES LLEGA A 16, EL JOB QUEDA INTERRUMPIDO, EN ESTE CASO REVISAR EL PROCESO DEL JOB ENVIADO

4) como ejecutar un job incondicionalmente

SQL> exec dbms_job.run(3);

PL/SQL procedure successfully completed.

y el tiempo programado al la siguiente ejecucion se movio...

SQL> select joB, substr(what,1,23), to_char(last_date,'HH:MI' ), TO_CHAR(NEXT_DATE,'HH:mi')
2 , FAILUREs
3 from user_jobs;

JOB SUBSTR(WHAT,1,23) TO_CH TO_CH FAILURES
--------- ----------------------- ----- ----- ---------
3 prueba_job; 04:59 05:29 0

5) como eliminar un job

SQL> exec dbms_job.remove(3);

PL/SQL procedure successfully completed.

SQL>




cuando se da shut down a la base de datos y el job se vuele a programas al tiempo del levantamiento de la instancia


saludos!!!

christian
12 de Marzo del 2004
No soy muy experimentado, diría casi novato pero yo utilizó los jobs para ejecutar algunas cargas de información. Hay varias formas de crearlos.

Yo los creo desde Warehouse Builder porque con esto es lo que trabajo pero estos jobs se guardan en la consola OMS en la parte donde dicen jobs, por esta parte es la otra que conozco de crearlos.

Espero te haya servido esta respuesta. Sino envíame un correo a mi dirección para ver como más te puedo ayudar a solucionar lo de los jobs..