Простой пример создания программы:
BEGIN DBMS_SCHEDULER.CREATE_PROGRAM ( program_name => 'simple_program'
, program_type => 'STORED_PROCEDURE' , program_action => 'updatesal' , enabled => TRUE ); END; /
Список сведений об имеющихся программах для планировщика имеется в таблицах DBA/ALL/USER_SCHEDULER_PROGRAMS.
Другими значениями параметра PROGRAM_TYPE могут быть 'PLSQL_BLOCK' и 'EXECUTABLE' (см. выше).
При наличии у процедуры параметров их количество потребуется указать особо:
CREATE PROCEDURE salary ( deer NUMBER ) AS BEGIN UPDATE emp SET sal = sal - deer; END; /
BEGIN DBMS_SCHEDULER.CREATE_PROGRAM ( program_name => 'simple_program1'
, program_type => 'STORED_PROCEDURE' , program_action => 'salary' , enabled => FALSE
, number_of_arguments => 1 ) ; END; /
Обратите внимание, что программа создана «отключенной». Дело в том, что указать фактические значения параметрам программе во «включенном» состоянии нельзя, так что последовательность действий будет следующая:
BEGIN DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT ( program_name => 'simple_program1'
, argument_position => 1 , argument_name => 'DELTA' , argument_type => 'NUMBER' ) ; END; /
EXECUTE DBMS_SCHEDULER.ENABLE ( 'simple_program1' )