Programación de un procedimiento con DBMS_SCHEDULER. PLS-00103: Se encontró con el símbolo "NULO" cuando esperaba uno de los siguientes:;
No puedo programar un trabajo para que se ejecute.
Hice un procedimiento que escribe archivos CSV y funciona cuando lo ejecuto.
Luego intenté hacer un trabajo para programarlo:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'AUTOMATE_CSV_EXPORT',
job_type => 'STORED_PROCEDURE',
job_action => 'EXPORT_ALL_LYS_FOR_TABLEAU',
number_of_arguments => 0,
start_date => '20-AUG-20 2.05.00PM',
repeat_interval => 'FREQ=WEEKLY; BYDAY=FRI; BYHOUR=23;',
end_date => NULL,
enabled => FALSE,
auto_drop => FALSE,
comments => 'hello i am a comment');
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => 'AUTOMATE_CSV_EXPORT',
attribute => 'logging_level',
value => DBMS_SCHEDULER.LOGGING_RUNS);
DBMS_SCHEDULER.enable(
name => 'AUTOMATE_CSV_EXPORT');
END;
/
No se ejecutó a la hora programada, pero lo hizo cuando lo ejecuté así:

Intenté editar la hora de inicio en el asistente y me da este error:

Lo programé para que se ejecute cada 2 minutos desde hace un tiempo y aún no se ha ejecutado. Definitivamente está habilitado.

Solución de problemas
TLDR: ¡el programador funciona! Lo único que no funciona es que ingrese mi correo electrónico para recibir notificaciones.
- ¿Lo estoy ejecutando en el mismo esquema en el que lo creé?
Cambié el trabajo para que se ejecute cada 2 minutos.

- Prueba de un trabajo programado: prueba:
create or replace procedure test_print
is
begin
dbms_output.put_line('Current date and time is : ' ||
to_char(sysdate,'DD-MON-YYYY HH:MI:SS AM'));
end;
set serveroutput on;
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'JOB_TEST',
job_type => 'STORED_PROCEDURE',
job_action => 'TEST_PRINT',
number_of_arguments => 0,
start_date => NULL,
repeat_interval => 'FREQ=MINUTELY;INTERVAL=2;',
end_date => NULL,
enabled => FALSE,
auto_drop => FALSE,
comments => 'Testing job runs');
DBMS_SCHEDULER.enable(name => 'JOB_TEST');
END;
/
select job_name,output,status,owner
from user_scheduler_job_run_details where job_name='JOB_TEST';
resultados:

Lo que todavía no funciona son las notificaciones por correo electrónico. Cuando eso es lo único que edito, aparece este error:

Respuestas
Lo más probable es que esté creando objetos en diferentes esquemas, verifique los trabajos creados y los detalles del trabajo en el esquema actual con estas vistas user_scheduler_jobs
yuser_scheduler_job_run_details
Procedimiento sencillo programado para ejecutarse cada 2 minutos
SQL>create or replace procedure test_print
2 is
3 begin
4 dbms_output.put_line('Current date and time is : ' || to_char(sysdate,'DD-MON-YYYY HH:MI:SS AM'));
5* end;
SQL> /
Procedure created.
SQL> exec test_print();
Current date and time is : 20-08-2020 09:22:59 PM
PL/SQL procedure successfully completed.
SQL> BEGIN
2 DBMS_SCHEDULER.CREATE_JOB (
3 job_name => 'JOB_TEST',
4 job_type => 'STORED_PROCEDURE',
5 job_action => 'TEST_PRINT',
6 number_of_arguments => 0,
7 start_date => NULL,
8 repeat_interval => 'FREQ=MINUTELY;INTERVAL=2;',
9 end_date => NULL,
10 enabled => FALSE,
11 auto_drop => FALSE,
12 comments => 'Testing job runs');
13
14
15
16
17
18 DBMS_SCHEDULER.enable(
19 name => 'JOB_TEST');
20 END;
21 /
SQL> select job_name,output,status from user_scheduler_job_run_details
2 where job_name='JOB_TEST';
JOB_NAME OUTPUT STATUS
---------- -------------------------------------------------- ---------------
JOB_TEST Current date and time is :20-08-2020 09:30:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-08-2020 09:32:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-08-2020 09:34:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-08-2020 09:36:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-08-2020 09:38:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-08-2020 09:40:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-08-2020 09:42:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-08-2020 09:44:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-08-2020 09:46:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-08-2020 09:48:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-AUG-2020 09:50:05 PM SUCCEEDED -- Modified date format in procedure
JOB_TEST Current date and time is :20-AUG-2020 09:52:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-AUG-2020 09:54:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-AUG-2020 09:58:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-AUG-2020 10:02:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-AUG-2020 10:04:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-AUG-2020 09:56:05 PM SUCCEEDED
JOB_TEST Current date and time is :20-AUG-2020 10:00:05 PM SUCCEEDED
18 rows selected.
SQL> select job_name,last_start_date,last_run_duration from user_scheduler_jobs
2 where job_name='JOB_TEST';
JOB_NAME LAST_START_DATE LAST_RUN_DURATION
---------- -------------------------------------------------- ------------------------------
JOB_TEST 20-AUG-20 10.08.05.070000 PM US/CENTRAL +000000000 00:00:00.009000
Editar: - La simple observación de que pudo ejecutar el trabajo manualmente pero no desde el programador implica que el trabajo y el procedimiento no están en el mismo esquema.