Tuesday February 7th 2012

Insider

Archives

Crear Job En Oracle

AutomaticWindingDsc00037

 

       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.

Reader Feedback

20 Responses to “Crear Job En Oracle”

  1. Carlos says:

    Thumb up 1 Thumb down 0

    Chevere esta pagina, saludos a todos

  2. Thumb up 1 Thumb down 0

    Muchas gracias por tu comentario :)

  3. Gilberto Mendoza says:

    Thumb up 0 Thumb down 0

    Que tal.

    Muy buena información, gracias!!!

    Pregunta: ¿podemos ejecutar tareas “ajenas” a Oracle? Por ejemplo: un .jar.

    Saludos, buen día.

    • Thumb up 1 Thumb down 0

      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.

      • Thumb up 0 Thumb down 0

        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

  4. Thumb up 0 Thumb down 0

    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

  5. giovanna says:

    Thumb up 0 Thumb down 0

    podemos crear un job que a la ves mande llamar 2 procesos ? si es asi como se hace gracias!!

  6. Thumb up 0 Thumb down 0

    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?

  7. Cristian says:

    Thumb up 0 Thumb down 0

    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.

  8. Hector Alexis says:

    Thumb up 0 Thumb down 0

    Me intereso super informacion eso andaba buscando porque queria ejecupar un procedure cada cierto tiempo

  9. Thumb up 0 Thumb down 0

    gracias por visitar mi blog, la verdad es que los job son muy utiles y raros por la poca info que existe sobre ellos.

  10. hjavid says:

    Thumb up 1 Thumb down 0

    Gracias por la explicacion buen aporte.

  11. Thumb up 0 Thumb down 0

    Gracias por visitar mi blog.

  12. ENRIQUE says:

    Thumb up 0 Thumb down 0

    y como puedo crear un porcedimietno almacenado que realice un backup de mi base de datos y qeu se ejecute con un joibs

  13. Julian says:

    Thumb up 0 Thumb down 0

    Gracias, muy útil.

    @ENRIQUE: Y escribiendo así dudo que puedas!!

  14. Frankly says:

    Thumb up 0 Thumb down 0

    Ya que lo has copiado de otro sitio, al menos podrías probarlo, por que eso no funciona.

  15. Thumb up 0 Thumb down 0

    @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.

  16. ana says:

    Thumb up 0 Thumb down 0

    un job para q sea enviado los dias lunes, miercoles y viernes?

  17. Rodrigo says:

    Thumb up 0 Thumb down 0

    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.

  18. Rodrigo says:

    Thumb up 0 Thumb down 0

    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?.

Leave a Reply


Warning: Invalid argument supplied for foreach() in /home/content/w/h/i/whibla1/html/wp-content/plugins/smilies-themer-toolbar/smilies-themer-toolbar.php on line 450