check:
SELECT * FROM dba_jobs;
SELECT * FROM dba_jobs_running;
SELECT schema_user,job,what,last_date,this_date,next_date,total_time/3600 hours,failures,broken FROM dba_jobs;
column TOTAL_TIME determine the time which system spend run this job from first initialization, it is not time of present us
column THIS_DATE is filled when job is still executing and show time present execution time

new job:
declare
jobnr number;
begin
dbms_job.submit(job=>jobnr,
what=>’dbms_output.put_line(”ble”);’,
next_date=>to_date(’10:00 09/09/2009′,’HH24:MI DD/MM/YYYY’),
interval=>’SYSDATE+1′);
end;
/

hand launch (only by owner, in the other case ORA-23421, even for sys user), beware on change next_date which will by calculated from now
example. interval: sysdate+1:
exec DBMS_JOB.RUN(JOB => [nr]);

set state BROKEN (only by owner, in the other case ORA-23421, even for sys user):
exec DBMS_JOB.BROKEN(JOB => [nr], BROKEN => TRUE);

unset state BROKEN (only by owner, in the other case ORA-23421, even for sys user):
exec DBMS_JOB.BROKEN(JOB => [nr], BROKEN => FALSE, NEXT_DATE => TO_DATE(’10:00 01/01/09′, ‘HH24:MI MM/DD/YY’));

change job (must be set all arguments, if any is unchange we set NULL):
exec DBMS_JOB.CHANGE(JOB => [nr], NEXT_DATE=>null, WHAT=>null, INTERVAL => ‘SYSDATE + 3′);

remove job (only by owner, in the other case ORA-23421, even for sys user):
exec DBMS_JOB.REMOVE(JOB => [nr]);

how to set time:
sysdate+1 #from present time + 1 day
trunc(sysdate)+1 #from 12.00 AM +1day
trunc(sysdate)+17/24 #17.00 PM today

check time:
SELECT to_char(trunc(sysdate+1) + 90/1440, 'MM/DD/YYYY HH:MI AM’) FROM dual;