if you do not have create job, you cannot create a job.
to see the other bit, why wouldn't you just try it out?
ops$tkyte%ORA10GR2> drop user abc cascade;
User dropped.
ops$tkyte%ORA10GR2> grant create session, resource to abc identified by abc;
Grant succeeded.
ops$tkyte%ORA10GR2>
ops$tkyte%ORA10GR2> begin
2 sys.dbms_scheduler.create_job(
3 job_name => '"ABC"."TJOB"',
4 job_type => 'PLSQL_BLOCK',
5 job_action => 'begin
6 NULL;
7 end;',
8 repeat_interval => 'FREQ=DAILY;BYHOUR=5;BYMINUTE=0;BYSECOND=0',
9 start_date => systimestamp at time zone 'America/New_York',
10 job_class => '"DEFAULT_JOB_CLASS"',
11 auto_drop => FALSE,
12 enabled => FALSE);
13 end;
14 /
PL/SQL procedure successfully completed.
ops$tkyte%ORA10GR2>
ops$tkyte%ORA10GR2> begin
2 sys.dbms_scheduler.set_attribute( name => '"ABC"."TJOB"', attribute => 'raise_events', value =>
3 dbms_scheduler.job_failed + dbms_scheduler.job_broken);
4 end;
5 /
PL/SQL procedure successfully completed.
ops$tkyte%ORA10GR2>
ops$tkyte%ORA10GR2> connect abc/abc
Connected.
abc%ORA10GR2> begin
2 sys.dbms_scheduler.enable( '"ABC"."TJOB"' );
3 sys.dbms_scheduler.run_job( '"ABC"."TJOB"' );
4 END;
5 /
PL/SQL procedure successfully completed.
It is like a table - you don't need CREATE TABLE to own a table, but once you owned the table - it is there and you can insert into it.