Hey all, In 10.1.0.5.0, I added a DBMS_SCHEDULER program: BEGIN SYS.DBMS_SCHEDULER.CREATE_PROGRAM ( program_name => 'RICH.MY_PRG' ,program_type => 'PLSQL_BLOCK' ,program_action => 'begin rich.my_procedure_01; rich.my_procedure_02; end; ' ,number_of_arguments => 0 ,enabled => FALSE ,comments => '2007/04/16 -- Created.' ); SYS.DBMS_SCHEDULER.ENABLE (name => 'RICH.MY_PRG'); END; / Note the creation date of 18 months ago -- it's been running faithfully every Monday since. I created a similar program yesterday: BEGIN SYS.DBMS_SCHEDULER.CREATE_PROGRAM ( program_name => 'T_SCHEMA.MY_NEW_PRG' ,program_type => 'PLSQL_BLOCK' ,program_action => 'BEGIN T_SCHEMA.MY_PROC_01; T_SCHEMA.MY_PROC_02; END; ' ,number_of_arguments => 0 ,enabled => FALSE ,comments => '2008/10/30 -- Created.' ); SYS.DBMS_SCHEDULER.ENABLE (name => 'T_SCHEMA.MY_NEW_PRG'); END; / I then created several schedules for this program (limitation of the Scheduler in Ora 10.1) and corresponding jobs for each. Every job fails with an ORA-12012 and ORA-6550: ORA-06550: line ORA-06550: line 1, column 361: PLS-00103: Encountered the symbol "" when expecting one of the following: So I turned on tracing in a login trigger. The resulting trace says: DECLARE job BINARY_INTEGER := :job; next_date TIMESTAMP WITH TIME ZONE := :mydate; broken BOOLEAN := FALSE; job_name VARCHAR2(30) := :job_name; job_owner VARCH AR2(30) := :job_owner; job_start TIMESTAMP WITH TIME ZONE := :job_start; window_start TIMESTAMP WITH TIME ZONE := :window_start; window_end TIMESTAMP WITH TIME ZONE := :window_end; BEGIN BEGIN T_SCHEMA.MY_PROC_01; T_SCHEMA.MY_PROC_02; END; :mydate := next_date; IF broken THEN :b := 1; ELSE :b := 0; END IF; END; Note the double "BEGIN" in the trace? I removed the "BEGIN" and "END;" lines from the Scheduler program and it works perfectly. However, the original RICH.MY_PRG that contains the BEGIN and END inexplicably also works. I'm very hesitant to trace the working one since it's in Production and in a schema that has many other critical schedules running, especially now at Financial Month End Close. I couldn't find any examples in the Oracle Docs for a PLSQL_BLOCK-type program that contains multiple statements. But it seems obvious that the PLSQL_BLOCK argument should not contain the BEGIN and END statements. So why does my older job work??? Not a very scary mystery, but still... TIA! Rich -- //www.freelists.org/webpage/oracle-l