Un job es lo equivalente a una tarea programada en Windows (es el porque de la imagen de arriba…), donde nosotros programamos cada cuando tiempo se debe
hacer por ejemplo una desfragmentaicon del disco, o incluso podemos especificar que dias y a que hora realizarlo,
tambien es similar a la ejecucion automatica de los backup de la base de datos.
A continuacion el query para crear un job en oracle.
What = El nombre del procedimiento almacenado a ejecutar.
nex_date = la fecha y hora en el cual se debe ejecutar el job por primera vez.
intervalo = si pueden observar en el query, el intervalo es la fecha de la ejecucion mas 7 dias.
1: DECLARE
2: X NUMBER;
3: BEGIN
4: SYS.DBMS_JOB.SUBMIT
5: (
6: job => X
7: ,what => 'ESQUEMA.PROCEDIMIENTO_PROBANDO_CODIGO;'
8: ,next_date => to_date('11/19/2008 08:49:08','mm/dd/yyyy hh24:mi:ss')
9: ,interval => 'TRUNC(SYSDATE+7)'
10: ,no_parse => FALSE
11: );
12: :JobNumber := to_char(X);
13: END;
Si el intervalo es cada 30 minutor seria
1: interval => SYSDATE+30/1440
Si el intervalo es cada domingo seria
1: interval => NEXT_DAY(TRUNC(SYSDATE), 'SUNDAY')
Si el intervalo es el primero de cada mes seria
1: interval => TRUNC(LAST_DAY(SYSDATE)) + 1
y asi sucesivamente.



Chevere esta pagina, saludos a todos
Muchas gracias por tu comentario
Que tal.
Muy buena información, gracias!!!
Pregunta: ¿podemos ejecutar tareas “ajenas” a Oracle? Por ejemplo: un .jar.
Saludos, buen día.
Gilberto, si es posible esto. En versiones recientes de Oracle (sinceramente no se desde que version) Oracle brinda una caracteristica de crear procedimientos almacenados de Oracle como “envoltorios” de clases JAVA, es decir, tu puedes desarrollar clases JAVA con una lógica determinada y eso “embedirlo” en un procedimiento almacenado de Oracle. Los tipos de datos de oracle son mapeados a los tipos de datos existentes en JAVA, entonces si tu agregas un jar y estas trabajando con este tipo de procedimientos almacenados que te comento, si podrias mandar a llamar un metodo de un jar.
Encontré este comentario que hice hace dos años por casualidad tratando de recordar como ejecutar un job, como da vueltas la vida. Gracias, un poco tarde, para quienes se tomaron la molestia de contestar.
Saludos
Mira, para ser sincero no lo se. Pero podes hacer cualquier cosa que te permita hacer el lenguaje Pl/SQL, enviar un mail por ejemplo. lo del jar seria ver si se puede hacer con PL/SQL
podemos crear un job que a la ves mande llamar 2 procesos ? si es asi como se hace gracias!!
No estoy seguro, pero desde un procedimiento puedes llamar a dos procedimientos, o desde el primer procedimiento puedes mandar a llamar al otro procedimiento.
A eso te refieres verdad?
Hola, necesito abrir una pag. html desde forms6i, se que con web.show_document, se puede, pero no me permite por ejemplo: quitar barra de menu, ponerle dimenciones(alto,ancho), o quitar la barra de direcciones.
Se puede hacer con alguna otra instrucción?.
Gracias.
Me intereso super informacion eso andaba buscando porque queria ejecupar un procedure cada cierto tiempo
gracias por visitar mi blog, la verdad es que los job son muy utiles y raros por la poca info que existe sobre ellos.
Gracias por la explicacion buen aporte.
Gracias por visitar mi blog.
y como puedo crear un porcedimietno almacenado que realice un backup de mi base de datos y qeu se ejecute con un joibs
Gracias, muy útil.
@ENRIQUE: Y escribiendo así dudo que puedas!!
Ya que lo has copiado de otro sitio, al menos podrías probarlo, por que eso no funciona.
@Frankly, eso no lo he copiado de otra página, lo hice y está funcionando en un trabajo que tuve hace años donde se trabaja con Oracle.
Si no te funciona, es porque no lo has podido copiar bien u otro error, favor verifica antes de hablar.
un job para q sea enviado los dias lunes, miercoles y viernes?
Buen dia..
Necesito crear un job para un procedimiento alamacenado que tenga estos intervalos:
ejecucion semanal, por ejemplo todos los lunes a las 11:50 pm
ejecucion ultimo dia del mes, tomando calendario contabl, por ejem: dic-30 , ener-30, feb-28 o 29, y asi sucesivamente.. ,
se podria definir varios intervalos o debeo programsr 12 jobs?
por favor espero una oportuna rpta.
si yo deseo q el intervalo corra el ultimo dia del mes a las 11:50.. seria algo asi:
SELECT TRUNC(LAST_DAY(SYSDATE)+ 1) + -0.1799/24 FROM dual
que hace o mejor a q horas corre la instruccion
TRUNC(LAST_DAY(SYSDATE))+ 1.. por asi dice q el 01-01-2012, pero a q horas se ejecuta?.