definir un valor de argumento para un paso en una cadena de trabajo de Oracle

Estoy construyendo una cadena de trabajo en Oracle (11R2) DBMS Scheduler. La cadena tiene dos pasos. Cada paso ejecuta el mismo programa, pero con diferentes argumentos. Puedo ver cómo definir la cadena, los pasos, las reglas, etc., pero no puedo entender cómo establecer los valores de los argumentos para los pasos.

Cuando construyo trabajos que son llamadas individuales a programas, establezco los argumentos de esta manera:

dbms_scheduler.set_job_argument_value(
   job_name    => 'MY_JOB',
   argument_position => 1,
   argument_value => 'foo');  

Mi pregunta es: ¿Qué función/proc de dbms_scheduler llamaría para establecer los argumentos para un paso de trabajo? Usando los ejemplos a continuación, ¿cómo establecería un argumento para 'STEP_1' en 'MY_CHAIN'?

Gracias, john

DBMS_SCHEDULER.CREATE_CHAIN (
    chain_name => 'MY_CHAIN',
    rule_set_name => NULL,
    evaluation_interval => NULL,
    comments => 'Chain calls 2 steps. Same program but with different arg values.');

DBMS_SCHEDULER.DEFINE_CHAIN_STEP (
    chain_name  => 'MY_CHAIN',
    step_name   => 'STEP_1',
    program_name => 'MY_PROGRAM');

DBMS_SCHEDULER.DEFINE_CHAIN_STEP (
    chain_name  => 'MY_CHAIN',
    step_name   => 'STEP_2',
    program_name => 'MY_PROGRAM');

DBMS_SCHEDULER.CREATE_JOB (
    job_name        => 'MY_CHAIN_JOB',
    job_type        => 'CHAIN',
    job_action      => 'MY_CHAIN',
    repeat_interval => 'freq=daily;byhour=12;byminute=0;bysecond=0',
    enabled         => TRUE);

preguntado el 22 de mayo de 12 a las 16:05

Después de buscar más, parece que puedo definir argumentos para los pasos en una cadena. Una solución consiste en almacenarlos en una tabla y buscarlos en cada paso. Encontré esta respuesta aquí: freelists.org/post/oracle-l/… -

Hola, ¿puedes publicar tu solución final? Yo también estaba teniendo este problema. El enlace que John publicó reenvía a otra publicación con el enlace del foro de Oracle, pero esa página se eliminó como parece:

1 Respuestas

Creo que tendría que definir dos programas diferentes para esto, aunque, por supuesto, pueden hacer referencia al mismo procedimiento almacenado o ejecutable.

En el caso de lo primero, a menos que vaya a modificar los valores de los argumentos, tiendo a usar tipos de programas de bloques anónimos para especificar los argumentos de los procedimientos almacenados; es lo suficientemente complejo como para agregar todo ese argumento del programa.

contestado el 22 de mayo de 12 a las 23:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.