Cómo crear un trabajo de programador en 12c oráculo
El ejemplo Programador Oracle 12c aquí crea un trabajo sencillo que se ejecuta un procedimiento almacenado Programming Language / Structured Query Language (PL / SQL). El procedimiento selecciona un recuento del número de usuarios en el sistema y se inserta ese número en una tabla con una marca de tiempo. Se ejecuta cada cinco minutos.
Siga estos pasos para programar un trabajo por primera vez:
Conéctese a SQL * Plus como usuario SYS.
Dar la fuente de empleo previsto la posibilidad de crear puestos de trabajo:
Usted debe ver esto:
Subvención tuvo éxito.
Se crea este trabajo el ejemplo y dirigido por HR.
Deje HR ver la tabla V $ SESSION:
Usted debe ver esto:
Subvención tuvo éxito.
El _ en V_ $ SESSION no es un error! V $ SESSION es sinónimo de V_ $ SESIÓN. Para la concesión de trabajar, usted tiene que dar el nombre de la vista.
Conéctese a SQL * Plus como la fuente de empleo y hacer una tabla para guardar los datos:
lt; create table USER_COUNT (NÚMERO NUMBER_OF_USERS (4), TIMESTAMP TIME_OF_DAY) TABLESPACE usuarios->
Usted ve esto:
Tabla creada.
Crear un procedimiento almacenado:
lt; CREAR O SUSTITUIR PROCEDIMIENTO NUMERO ASv_user_count insert_user_count (4) recuento -BEGINSELECT (*) EN v_user_countFROM v $ sessionWHERE nombre de usuario NO ES user_countVALUES NULL-INSERT INTO (v_user_count, systimestamp) -commit-FIN insert_user_count- />
El procedimiento almacenado se reúne el número de usuarios y los inserta en la mesa con una marca de tiempo. Usted debe ver esto:
Procedimiento creado.
Crear un programa para el trabajo:
lt; BEGINDBMS_SCHEDULER.CREATE_PROGRAM (program_name => 'PROG_INSERT_USER_COUNT', program_action => 'INSERT_USER_COUNT', program_type => 'STORED_PROCEDURE') - FIN - />
Usted ve esto:
PL / SQL terminado con éxito.
Activar el programa:
Usted ve esto:
PL / SQL terminado con éxito.
Crear un calendario para la ejecución del trabajo:
lt; 'FREC = MINUTELY- INTERVALO = 5- BYDAY = S, D' BEGINDBMS_SCHEDULER.CREATE_SCHEDULE (schedule_name => 'my_weekend_5min_schedule', fecha_inicial => SYSTIMESTAMP, repeat_interval =>, fecha_final => '30' días SYSTIMESTAMP + INTERVALO, comentarios => ' Cada 5 minutos) - FIN - />
Este trabajo ejemplo ejecuta cada cinco minutos. Usted ve esto:
PL / SQL terminado con éxito.
Crea tu trabajo con el programa y programa que ha definido:
lt; BEGINDBMS_SCHEDULER.CREATE_JOB (job_name => 'my_user_count_job', program_name => 'prog_insert_user_count', schedule_name => 'my_weekend_5min_schedule') - FIN - />
Usted ve esto:
PL / SQL terminado con éxito.
Activar tu trabajo para que se ejecute dentro de la programación definida:
lt; dbms_scheduler.enable exec ('my_user_count_job')>
Usted ve esto:
PL / SQL terminado con éxito.
El trabajo se ejecuta en el momento de inicio especificada (en SYSTIMESTAMP). Si elige una fecha del calendario en el futuro, que no se inicia hasta entonces.
Después ha estado ejecutando el trabajo durante 17 minutos, escriba lo siguiente para ver su mesa USER_COUNT:
lt; select * from user_count->
Usted ve esto:
NUMBER_OF_USERS TIME_OF_DAY --------------- --------------------------------- 14 09-agosto-13 02.15.14.118495 PM14 09-agosto-13 02.00.14.137300 PM13 09-agosto-13 02.05.14.120116 PM13 09-agosto-13 02.10.14.120680 PM
Cuando usted tiene el funcionamiento de trabajo, usted puede obtener más información sobre el éxito o fracaso de la consulta de los siguientes puntos de vista:
USER_SCHEDULER_JOB_RUN_DETAILSUSER_SCHEDULER_JOB_LOG
Estas vistas muestran información solamente acerca de sus puestos de trabajo. Para obtener información sobre las recientes ejecuciones de nuestro trabajo, inicie la sesión como la fuente de empleo y el tipo
lt; 'MY_USER_COUNT_JOB' job_name selecto, estado, run_duration, cpu_usedfrom USER_SCHEDULER_JOB_RUN_DETAILSwhere job_name = ->
Usted ve esto:
JOB_NAME ESTADO RUN_DURATION CPU_USED -------------------- ---------- --------------- - ----------------- MY_USER_COUNT_JOB SUCCEEDED 000 00:00:00 000 00: 00: 00.01MY_USER_COUNT_JOB SUCCEEDED 000 00:00:00 000 00: 00: 00.01MY_USER_COUNT_JOB SUCCEEDED 000 00:00:00 000 00: 00: 00.00MY_USER_COUNT_JOB SUCCEEDED 000 00:00:00 000 00: 00: 00,01