To see a list of the currently configured Oracle Jobs use the SQL;
ORDER BY next_date DESC
This will produce something that looks like (in SQL Developer);
|Query Results in Oracle SQL Developer|
The WHAT field contains the SQL that the job is going to periodically run - this is stored as a large object so you might want to use an editor like SQL Developer or PL/SQL Developer to display it correctly.
Removing An Existing Job
To remove a job you need the job_id from the first query and then execute;
Where "job" is the value from the first query (a unique reference for the job). You then need to do a commit.
Adding A New Job
Let's assume we have the following PL/SQL block we'd like executed at 8am every day;
FOR v_Row IN (SELECT SYSDATE FROM DUAL) LOOP
This is a pretty simple PL/SQL block that will jsut write todays date to the DBMS_OUTPUT queue. Basically it won't do anything except run without an errors.
To schedule this as a job execute the following PL/SQL;
sys.dbms_job.submit(job => v_Job,
what => 'BEGIN FOR v_Row IN (SELECT SYSDATE FROM DUAL) LOOP dbms_output.put_line(v_Row.sysdate); END LOOP; END;',
next_date => TRUNC(SYSDATE) + 1 + 8 / 24,
interval => 'TRUNC(SYSDATE) + 1 + 8/24');
The only required parameters for the DBMS_JOB.Submit function are the output parameter (for the Job reference) and the what. Everything else has defaults.