Scheduling a procedure with DBMS_SCHEDULER. PLS-00103: Encountered the symbol “NULL” when expecting one of the following: ; I can't schedule a job to run.
I made a procedure that writes CSV files and it works when I execute it.
Then I tried to make a job to schedule it:
BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
    job_name =&gt; 'AUTOMATE_CSV_EXPORT',
    job_type =&gt; 'STORED_PROCEDURE',
    job_action =&gt; 'EXPORT_ALL_LYS_FOR_TABLEAU',
    number_of_arguments =&gt; 0,
    start_date =&gt; '20-AUG-20 2.05.00PM',
    repeat_interval =&gt; 'FREQ=WEEKLY; BYDAY=FRI; BYHOUR=23;',
    end_date =&gt; NULL,
    enabled =&gt; FALSE,
    auto_drop =&gt; FALSE,
    comments =&gt; 'hello i am a comment');

  DBMS_SCHEDULER.SET_ATTRIBUTE( 
    name =&gt; 'AUTOMATE_CSV_EXPORT', 
    attribute =&gt; 'logging_level', 
    value =&gt; DBMS_SCHEDULER.LOGGING_RUNS);
  
  DBMS_SCHEDULER.enable(
    name =&gt; 'AUTOMATE_CSV_EXPORT');
END;
/


It didn't run at the scheduled time, but it did when I ran it like this:

I tried to edit the start time in the wizard and it gives me this error:

I scheduled it to run every 2 minutes starting a while ago, and it hasn't run yet. It's definitely enabled.


Troubleshooting
TLDR: scheduler works!!! The only thing that doesn't work is me putting in my email to get notifications.

Am i running it in the same schema I created it in?


I changed the job to run every 2 minutes.

^^^ so it is working? But I don't see any CSVs in the destination folder. I changed the start date to NULL like the code below and it worked! I have CSVs!

Testing a scheduled job:
test:

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 =&gt; 'JOB_TEST',
    job_type =&gt; 'STORED_PROCEDURE',
    job_action =&gt; 'TEST_PRINT',
    number_of_arguments =&gt; 0,
    start_date =&gt; NULL,
    repeat_interval =&gt; 'FREQ=MINUTELY;INTERVAL=2;',
    end_date =&gt; NULL,
    enabled =&gt; FALSE,
    auto_drop =&gt; FALSE,
    comments =&gt; 'Testing job runs');
 
DBMS_SCHEDULER.enable(name =&gt; 'JOB_TEST');
END;
/

select job_name,output,status,owner 
from user_scheduler_job_run_details where  job_name='JOB_TEST';

results:

The thing that still doesn't work is notifications via email. When that's the only thing i edit, i get this error:
Most probably you are creating objects in different schemas,verify created jobs and job details in current schema with these views user_scheduler_jobs and user_scheduler_job_run_details
Simple procedure scheduled to run every 2 minutes
  SQL&gt;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&gt; /
    
    Procedure created.
    
    SQL&gt; exec test_print();
    Current date and time is : 20-08-2020 09:22:59 PM
    
    PL/SQL procedure successfully completed.
    
    
    SQL&gt; BEGIN
      2             DBMS_SCHEDULER.CREATE_JOB (
      3              job_name =&gt; 'JOB_TEST',
      4              job_type =&gt; 'STORED_PROCEDURE',
      5              job_action =&gt; 'TEST_PRINT',
      6              number_of_arguments =&gt; 0,
      7              start_date =&gt; NULL,
      8              repeat_interval =&gt; 'FREQ=MINUTELY;INTERVAL=2;',
      9              end_date =&gt; NULL,
     10              enabled =&gt; FALSE,
     11              auto_drop =&gt; FALSE,
     12              comments =&gt; 'Testing job runs');
     13
     14
     15
     16
     17
     18              DBMS_SCHEDULER.enable(
     19               name =&gt; 'JOB_TEST');
     20  END;
     21  /
     
  SQL&gt; 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&gt; 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

Edit:- Just observation you were able to run job manually but not running from scheduler implies job and procedure are not in the same schema.