Saltar al contenido

Sepa Cómo Crear un JOB en los PL-SQL Packages en Oracle

PL-SQL Packages en OracleSi aprendes como se debe crear y utilizar un JOB en tus PL-SQL Packages en Oracle podrás lanzar una tarea o un proceso para que se ejecute de forma posterior dentro de tu Base de Datos Oracle.

Un JOB o trabajo (en español) básicamente permite colocar un proceso en una cola o lista de tareas para que este se ejecute en una fecha y hora predeterminada en tus PL-SQL Packages en Oracle.

En tus PL-SQL Packages en Oracle también se puede indicar que un JOB se ejecute nuevamente después de un intervalo de tiempo.

Un JOB es muy útil cuando necesitas que un proceso se ejecute a cierta hora para un día predeterminado y que este se repita dentro de un intervalo de tiempo, en tus PL-SQL Packages en Oracle también se puede indicar que la tarea se ejecute solo una vez.

Revisemos como es la sintaxis del JOB en tus PL-SQL Packages en Oracle:

DBMS_JOB.SUBMIT(

job,

what,

next_date,

interval,

no_parse )

/* PL-SQL Packages en Oracle */

Donde:

Job= Corresponde a un número que identifica al JOB creado.

What= Permite identificar en tus PL-SQL Packages en Oracle el procedimiento almacenado que será ejecutado.

Next_date= Permite indicar la fecha y la hora en la cual será ejecutado el proceso colocado en el parámetro what, por defecto el proceso se ejecuta de inmediato.

Interval= Corresponde al intervalo de tiempo para que el proceso se vuelva a ejecutar.

No_parse= Es un valor lógico para indicar si el proceso se debe dividir.

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”

¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

Veamos ahora un ejemplo para que entiendas mejor como se debe crear un JOB en tus PL-SQL Packages en Oracle.

Ejemplo #1: Supone que necesitas ejecutar un proceso todos los días a las 23:00 hrs, veamos como se hace:

/* PL-SQL Packages en Oracle */

Lin_job      number;

Begin

DBMS_JOB.SUBMIT(

Lin_job,

‘pkg_empleados.prc_actualizar_datos;’,

To_date(‘12/05/2012 23:00:00’,’dd/mm/yyyy hh24:mi:ss’),

Trunc(sysdate+1) );

End;

En este ejemplo se muestra como programar un JOB para que se ejecute todos los días a las 23:00 hrs, esto se hace indicando como intervalo el día actual mas un día dentro de tus PL-SQL Packages en Oracle.

Te propongo que pruebes de inmediato estos ejemplos en tu Base de Datos con tus propias tablas,  PL-SQL Procedures en Oracle y PL-SQL Function en Oracle, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL-SQL Packages en Oracle.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de PL-SQL Packages en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL-SQL Packages en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio – Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos

66 comentarios en «Sepa Cómo Crear un JOB en los PL-SQL Packages en Oracle»

    1. Hola Jose, gracias por comunicarte, ahora te explico, un Job permite dejar un proceso en una lista de espera y la Base de Datos lo ejecuta a medida que tiene recursos disponibles, si ocurre algún error en la ejecución este debe ser controlado por tu proceso e informarlo por medio de un archivo log o una tabla, el Job solo ejecuta procesos no envía mensajes de error, espero haber respondido tu pregunta.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle

      https://dominatuspackagesen0racle.com/detalles

  1. Me parece un muy interesante aporte. Tengo muchos años de trabajar con Oracle y a veces las cosas más simples se nos olvidan cuando las ocupamos sobre la marcha. Ocupé tu comentario mientras preparaba un laboratorio sobre pruebas de bloqueo. Si te parece podemos compartir mayor información con tus lectores de habla hispana. Exitos y saludos desde Costa Rica.

    1. Hola Gerardo, gracias por comunicarte y excelente tu comentario, no habria ningun problema en compartir mas información con mis lectores, estaremos en contacto, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola, gracias por comunicarte y excelente tu comentario, seguire escribiendo artículos que sean útiles y entreguen valor, gracias.

      PD: Ya obtuviste mi reporte gratuito de ‘Cómo Construir un Select Eficiente en Oracle en Solo 7 Pasos’, si aún no lo has hecho puedes descargarlo desde aquí:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Wesley, gracias por comunicarte y por tu comentario, me da mucho gusto que mi blog te sea de utilidad, eso me motiva a seguir escribiendo contenido de calidad, gracias.

      PD: Ya obtuviste mi reporte gratuito sobre “Cómo Construir un Select Eficiente en Oracle en Solo 7 Pasos”?, si aún no lo has hecho puedes obtenerlo desde aquí:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  2. Primero gracias por colaborar para la comunidad, exitos y sigue adelante, mi pregunta es como puedo hacer un procedimiento para que envie correos a clientes de la base de datos.

    1. Hola Guatenais, gracias por comunicarte y por tu comentario, bueno para enviar emails desde oracle existen dos librerias, la UTL_SMTP que viene desde oracle 8i y la UTL_MAIL que esta desde oracle 10g, la UTL_SMTP es mas dificil de usar, mientras que la UTL_MAIL facilita mucho el envio de emails desde pl-sql, ya que se puede crear un email solo ejecutando el procedimiento UTL_MAIL.SEND(correo_origen, correo_destino, asunto, mensaje), le debes solicitar a tu DBA que configure el servidor de correos y la libreria que vas utilizar.

      PD: Ya obtuviste mi reporte gratuito sobre “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aun no lo has hecho reclama el tuyo haciendo clic aquí:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola, gracias por comunicarte y excelente tu comentario, asi me insto a seguir escribiendo mas artículos de valor para mis lectores, gracias.

      PD: Ya obtuviste mi reporte gratuito sobre “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aun no lo has hecho reclama el tuyo haciendo clic aquí:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  3. Estimado Jose Arce
    Me parece que para evitar problemas con la ejecución del job cuando se cae creo que sería ideal programar dentro del package que llama el job el envio de un mail indicando si se proceso y además insertarle una exception en caso que presente un error el package. Este package envíe el codigo de error si así ocurriera así te quedarás con la tranquilidad de que se ejecuto y si no se ejecuto por que fallo.

    1. Hola Carlos, gracias por comunicarte y por tu excelente aporte, es interesante recibir ideas que ayuden a la solución de problemas, gracias.

      PD: Ya obtuviste mi reporte gratuito sobre “Como Construir un SELECT Eficiente en Oracle en solo 7 Pasos”, si aún no lo has hecho puedes conseguirlo haciendo clic aquí:
      https://dominatuspackagesen0racle.com

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  4. Tengo un paquete en ORACLE 10g y necesito programar la ejecución de un JOB PK_MOCOINCA diariamente a las 6:00 A.M en mis 38 esquemas que tengo ¿?
    XXX=Siglas de cada esquema, ejemplo AGS,HGO,CHS,etc
    BEGIN
    ORHXXX0.PK_MOCOINCA.prc_main(‘ERHXXX0’);
    COMMIT;
    END;

    1. Hola Edgar, gracias por comunicarte, para ejecutar ese procedimiento en un Job debes crear el Job en cada uno de los esquemas que tienes, teniendo la precaución de cambiar las siglas correspondientes, aqui te dejo como ejemplo el job para el primer esquema:

      Lin_job number;
      Begin
      DBMS_JOB.SUBMIT(
      Lin_job,
      ‘BEGIN ORHAGS0.PK_MOCOINCA.prc_main(‘ERHAGS0′); COMMIT; END;’,
      To_date(’11/04/2012 06:00:00′,’dd/mm/yyyy hh24:mi:ss’), — Aqui pones la fecha del primer día de ejecución
      Trunc(sysdate+1) );
      End;

      PD: Ya obtuviste mi reporte gratuito sobre ‘Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos’, si aún no lo has hecho puedes obtenerlo desde aquí:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle

  5. Soy analista Oracle y necesitaba hacer el job y me ayudo mucho este blog. gracias!!!

    Tambien se puede hacer con el TOAD, pero es mejor siempre hacerlo en codigo porque puedes hacer mas modificaciones y especificaciones: aqui mi ejemplo

    DECLARE
    X NUMBER;
    BEGIN
    SYS.DBMS_JOB.SUBMIT
    ( job => X
    ,what => ‘PKG_MY_PKG.MY_PROCEDURE;’
    ,next_date => to_date(’25/07/2013 03:30:11′,’dd/mm/yyyy hh24:mi:ss’)
    ,interval => ‘SYSDATE+1’
    ,no_parse => FALSE
    );
    SYS.DBMS_OUTPUT.PUT_LINE(‘Job Number is: ‘ || to_char(x));
    COMMIT;
    END;
    /

    1. Hola Arturo, gracias por comunicarte, por tu comentario y por tu excelente aporte, de esta forma vamos enriqueciendo este sitio con buena información que sea útil para todos, gracias.

      PD: Ya obtuviste mi libro-reporte gratuito sobre “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aún no lo tienes puedes obtenerlo desde el siguiente enlace:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Miguel, gracias por comunicarte, la mejor forma de renombrar un objeto job es que primero guardes el script de creación del job, segundo borres el job con un EXEC DBMS_JOB.REMOVE(numero_job); y tercero crees el job cambiando el nombre en el script que tienes guardado, para hacer esto debes tener la precaución de que el job no se este ejecutando, gracias.

      PD: Ya obtuviste tu libro-reporte gratuito sobre ‘Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos’, si aún no lo tienes puedes obtenerlo desde el siguiente enlace:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  6. Buen día Roberto.
    Quisiera consultarte si se debe tener algún permiso especial para que estos jobs, o schedule job en mi caso se ejecuten, dado que los programe, y se dejan ejecutar manualmente, pero no se estan ejecutando automaticamente y creo que es un tema de permisos no se si sobre el usuario con que los cree o sobre el job específico.

    1. Hola Iván, gracias por comunicarte y por tu comentario, si creaste el Job en un esquema o usuario particular y lo vas a ejecutar bajo el mismo usuario no necesitas ningún permiso, si el Job te funciona manualmente y no automáticamente tienes un problema en la creación del Job, revisa muy bien el intervalo que le diste; Ahora si quieres ejecutar el Job desde otro esquema o usuario ahí si es necesario un permiso el que puedes dar con un grant como el siguiente:

      grant alter on tu_esquema_origen.tu_job to tu_usuario_destino;

      PD: Ya obtuviste mi libro-reporte gratuito de ‘Como Construir un SELECT Eficiente en Oracle en Solo 7 Pasos’, si aun no lo tienes puedes obtenerlo desde aquí:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Leonardo, gracias por comunicarte y por tu comentario, me da mucho gusto que la información te sea de utilidad, ya obtuviste mi libro-reporte gratuito sobre ‘Como Construir un SELECT Eficiente en Oracle en Solo 7 Pasos’, si aun no lo tienes puedes obtenerlo desde el siguiente enlace: https://dominatuspackagesen0racle.com/

      PD: Si te han gustado los artículos te invito a compartir el enlace https://dominatuspackagesen0racle.com/ con tus amigos o personas que veas que también les pueda interesar esta información, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  7. hola,
    muy buen aporte, pero tengo una inquietud, necesito crear un jobs que corra cada media hora pero por un rango especifico ejemplo de 8 am a 8 pm cada medía hora, hasta hora lo puedo hacer cada media hora pero diariamente y no he podido dejarlo por un rango especifico.

    Saludos.

    1. Hola Nelson, gracias por comunicarte, programar un Job para que se ejecute dentro de un rango de tiempo no se puede hacer, al menos yo nunca lo he hecho, pero si se puede solucionar programando el procedimiento, lo único que debes hacer es validar al inicio del proceso que la hora de ejecución este dentro del rango de 8 am a 8 pm de lo contrario no se procesa nada, otra forma es que programes 24 jobs que se ejecuten una vez al día, el primero a las 8 pm, el segundo a las 8:30 am y así sucesivamente hasta ejecutar el de las 8 pm, espero te sirva una de las soluciones, gracias.

      PD: Ya obtuviste mi libro-reporte gratuito sobre “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aún no lo tienes puedes obtenerlo desde el enlace:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  8. Hola buen blog, una consulta tu crees que se pueda ejecutar varios job en un solo procedimiento y a la vez cada job invoque a un mismo Store Procedure, mi intencion es simular una especie de hilos

    1. Hola Peter, gracias por comunicarte y por tu comentario, si se puede hacer ya que cada Job se ejecuta en una sesión diferente y tu debes controlar dentro del procedure que es lo que se debe realizar por cada Job abierto para que cada uno realice tareas diferentes (no repetidas), es decir por ejemplo que cada Job procese información distinta para que sea eficiente, gracias.

      PD: Ya obtuviste mi libro-reporte “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aún no lo tienes puedes obtenerlo desde este enlace: https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  9. Hola, gracias por este post me ha servido bastante, pero en el momento tengo un lío programe mi job para que se ejecute todos los días a las 4 pm, la primera vez funciona perfecto, pero de ahí en adelante la fecha que el pone de ejecución es el siguiente día a las 00:00 horas, como podría controlar esto para que no suceda?…Gracias por tu ayuda.

    1. Hola Diego, gracias por comunicarte y por tu comentario, para que tu job se ejecute todos los días a las 4 pm o 16:00 hrs. debes hacer el siguiente truco en el parámetro Interval para indicar la hora exacta de ejecución:

      Trunc(sysdate+1)+(16/24)

      Donde 16 corresponde a las 16:00 hrs y 24 al total de horas del día (24 horas).

      PD: Ya obtuviste mi libro-reporte sobre “Como Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”, si aun no lo tienes puedes obtenerlo desde este enlace: https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  10. Hola, como se hace un job para que se ejecute automáticamente cada 2 horas todos los dias de la semana.
    el query que necesito que se ejecute es:
    alter session set events ‘immediate trace name DROP_SEGMENTS level 23’;‏

    1. Hola Frank, gracias por comunicarte, para programar un Job que se ejecute cada 2 horas debes agregar lo siguiente en los campos what, next_date e interval, en el ejemplo el proceso se ejecutará la primera vez a las 8am y posteriormente a las 10am:

      what= ‘alter session set events ‘immediate trace name DROP_SEGMENTS level 23′;‏’
      next_date= to_date(’27/09/2014 08:00:00′,’dd/mm/yyyy hh24:mi:ss’)
      interval= ‘sysdate+(120/1440)’

      PD: Ya obtuviste mi libro-reporte sobre “Como Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aun no lo tienes puedes obtenerlo desde el enlace https://dominatuspackagesen0racle.com/

      PD2: Si te ha gustado el contenido de este blog te invito a que compartas el enlace https://dominatuspackagesen0racle.com/ con tus amigos o con personas que también les pueda interesar esta información, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Darwin, gracias por comunicarte, para resolver esto lo mejor es que programes 4 Jobs, utilizando el ejemplo #1 que muestro, que ejecuten el mismo proceso pero en los días y la hora que necesitas, gracias.

      PD: Ya obtuviste mi Libro-Reporte sobre “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aun no lo tienes puedes obtenerlo desde el enlace https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Javier, gracias por comunicarte, para que un Job se ejecute solo una vez basta con dejar nulo el parámetro interval, es decir, en lugar de colocar trunc(sysdate+1) debes poner null, gracias.

      PD: Ya pudiste ver mi libro-reporte sobre “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aún no lo tienes puedes descargarlo desde este enlace https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  11. hola yo solo tengo teoría, podrías asesorarme un poco, ya que soy nuevo en esto y quiero ampliar mis conocimientos para no quedar resagado….en la escuela no enseñan la mayoria de procesos, digamos apenas lo basico o ni eso…

    saludos cordiales

    1. Hola Miguel, gracias por comunicarte, claro que puedo asesorarte y lo primero que te recomiendo es que puedas ver mi libro-reporte sobre “Cómo Crear un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aún no lo tienes en tus manos puedes obtenerlo desde aquí https://dominatuspackagesen0racle.com/, solo debes ingresar tu email y de esa forma podré seguir enviándote mas información de tu interés.

      PD: Si te ha gustado el blog te invito a compartir el enlace https://dominatuspackagesen0racle.com/ con tus amigos o personas que también les pueda interesar ver este contenido, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  12. Hola gracias por el aporte un pregunta, necesito correr mi job todos los jueves de cada mes a la 1 am me puedes ayudar a saber que colocar por favor

    Gracias

    1. Hola Osman, gracias por comunicarte, lo que debes hacer es programar la ejecución de tu job para un día jueves, por ejemplo este jueves 17 de marzo y luego el intervalo debe ser dentro de 7 días, algo como lo siguiente:

      To_date(‘17/03/2016 01:00:00’,’dd/mm/yyyy hh24:mi:ss’) — next_time —
      Trunc(sysdate+7) — interval —

      PD: Ya pudiste ver mi libro reporte sobre ‘Cómo Crear un SELECT Eficiente en ORACLE en Solo 7 Pasos’, si aun no lo tienes en tus manos puedes obtenerlo desde aquí: https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  13. Hola Jose, puedo hacer jobs con parametros de salida?. ejemplo:
    DECLARE
    X NUMBER;
    ovamensajetecnico VARCHAR2 (255) := ”;
    BEGIN
    SYS.DBMS_JOB.SUBMIT
    ( job => X
    ,what => ‘package.cambiar(ovamensajetecnico);’
    ,next_date => to_date(’07/07/2016 22:00:00′,’dd/mm/yyyy hh24:mi:ss’)
    ,interval => ‘TRUNC(SYSDATE+2)-(15/1440)’
    ,no_parse => FALSE
    );
    SYS.DBMS_OUTPUT.PUT_LINE(‘Job Number is: ‘ || to_char(x));
    COMMIT;
    END;

    Me dice que ovamensajetecnico debe ser declarado

    1. Hola Andres, gracias por comunicarte, no he creado jobs donde requiera parámetros de salida, pero si lo necesitas obtener un retorno te recomiendo que lo guardes en una tabla de logs, gracias.

      PD: Ya pudiste ver mi libro reporte sobre ‘Cómo Crear un SELECT Eficiente en ORACLE en Solo 7 Pasos’, si aun no lo tienes en tus manos puedes obtenerlo gratis desde aquí: https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  14. Gracias , fue útil tu aporte. Un favor, necesito saber, porque los Jobs luego de ejecutarlos, se desaparecen en el Toad. He consultado la vista dba_jobs y tampoco aparecen. Al parecer, luego de ejecutarlos desaparecen, que es algo que creo no es asi. Saludos cordiales

    1. Hola Rolando, gracias por comunicarte, los cursores que desaparecen son los que se ejecutan solo una vez, es decir, que no tienen un intervalo, si defines un cursor para que se ejecute cada 1 hora o todos los días a las 7am, estos cursores no desaparecen porque se estarán ejecutando siempre.

      PD: Ya pudiste ver mi libro reporte sobre ‘Cómo Crear un SELECT Eficiente en ORACLE en Solo 7 Pasos’, si aun no lo tienes en tus manos puedes obtenerlo gratis desde aquí: https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Miguel, gracias por comunicarte, las herramientas de auditoria generalmente son usadas por el DBA y se activan con los comandos audit (que permite activar la auditoria para uno o todos los usuarios) y noaudit (que permite desactivar la auditoria para uno o varios usuarios), te recomiendo investigar mas sobre estos comandos.

      PD: Si te ha gustado lo que has visto del blog te invito a compartir el enlace https://dominatuspackagesen0racle.com/ con tus amigos o personas que también les pueda interesar ver esta información, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  15. Hola Roberto. Te sigo desde hace tiempo, tus post me son de mucha ayuda y son los mas detallados y simples que he podido encontrar. Mira yo tengo una pregunta, quisiera saber si desde Oracle puedo usar los pop-ups de windows, esos que windows usa para mostrar mensajes de actualización y de errores, que salen en la parte inferior izquierda del escritorio. Saludos.

    1. Hola Guido, gracias por comunicarte, puedes probar usando la siguiente función de oracle para generar mensajes de error en la consola actual:
      RAISE_APPLICATION_ERROR(-20201,’No existen registros’);

      PD: Si te ha gustado lo que has visto del blog te invito a compartir el enlace https://dominatuspackagesen0racle.com/ con tus amigos o personas que también les pueda interesar ver esta información, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  16. Buenas tardes, antes agradecerte por el aporte, soynueva en esto, en verdad se me hace muy dificil entender el codigo ya que reviso distintos codigos de job en mi trabajo y no todos tienen la misma estructura, cambian lagunos parametros, en fin, no los entiendo, veo que primero expones la estructura del job, pero luego al hacer el ejemplo, colocas antes de: “DBMS_JOB.SUBMIT(…” la palabra Begin, y mas antes “Lin_job number;”, entonces ahi viene mi duda: como empieza correctamente un Job, si quiero construir uno, tengo que empezar con: DBMS_JOB.SUBMIT o declarando el numero que identifica al job creado?, disculpa si soy muy minuciosa en la explicacion que quiero recibir pero pienso que es la mejor forma de aprender, prefiero que me expliquen bien detallado una vez a estar preguntando a cada rato.

    Saludos cordiales,

    1. Hola Mayte, gracias por comunicarte, primero que todo, cualquier cosa que crees en PL-SQL debe ir dentro de un bloque Begin … End;, si vas a crear un job debes hacerlo como en el ejemplo desde que se declara la variable Lin_job.

      PD: Para iniciar en el mundo de PL-SQL y aprender de una forma fácil te recomiendo descargar y ver mi libro-reporte sobre “Cómo Crear un SELECT Eficiente en ORACLE en Solo 7 Pasos”, si aun no lo tienes en tus manos puedes obtenerlo gratis desde aquí: https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Carlos, gracias por comunicarte, solo debes ponerlos dentro del begin end separados por ; (punto y coma).

      PD: Si te ha gustado lo que has visto del blog te invito a compartir el enlace https://dominatuspackagesen0racle.com/cmbl/ con tus amigos o personas que también les pueda interesar ver esta información, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  17. Muchas Gracias nuevamente, ya vi como puedo colocar varios procedimientos dentro del jobs. Ahora pregunto podrí enviar varios proce uno tras de otro pero que se ejecute el job por la hora programada y una condición establecida en alguna tabla de control. (Bandera)

    1. Estimado Carlos, gracias por comunicarte, si puedes programar los jobs que necesites, con los procesos que necesites y a la hora que lo requieras, lo que no puedes hacer es condicionar el job, pero si puedes poner tablas de control y banderas en los procesos.

      PD: Si te ha gustado lo que has visto del blog te invito a compartir el enlace https://dominatuspackagesen0racle.com/cmbl/ con tus amigos o personas que también les pueda interesar ver esta información, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Andres, gracias por comunicarte, puedes programar un job para que se ejecute cada 5 minutos y controlar que el proceso se ejecute hasta que se cumpla la condición de la fecha, una vez que se cumpla la condición el proceso dejará de ejecutarse pero el job seguirá ejecutándose cada 5 minutos a menos que lo elimines.

      PD: Ya viste mi guía sobre “Cómo Crear SELECT Eficientes en ORACLE en Solo 7 Pasos”, si aun no la tienes en tus manos puedes obtenerla gratis desde aquí: https://dominatuspackagesen0racle.com/cmrz

      PD2: Si te interesa aprender mas sobre Oracle u otras temáticas te recomiendo mirar el siguiente video:
      https://dominatuspackagesen0racle.com/aprende-online

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Victor, gracias por comunicarte, puedes revisar las siguientes tablas que entregan información sobre jobs all_jobs, dba_jobs y user_jobs.

      PD: Ya viste mi guía sobre “Cómo Crear SELECT Eficientes en ORACLE en Solo 7 Pasos”, si aun no la tienes en tus manos puedes obtenerla gratis desde aquí: https://dominatuspackagesen0racle.com/cmrz

      PD2: Si te ha gustado lo que has visto del blog te invito a compartir el enlace https://dominatuspackagesen0racle.com/cmbl/ con tus amigos o personas que también les pueda interesar ver esta información, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  18. Como puedo hacer cuando quiero ejecutar un job de la siguiente manera:
    todos los días (Lunes,Martes,Miercoles,Jueves,Viernes)
    Solo en horarios de (6 de hasta las 6 y no las 24 horas)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.