Get DDL of DBMS Scheduler packages job in Oracle
Create a package before they get the DDL:
SQL> BEGIN
dbms_scheduler.create_job(
job_name => 'Full_Backup'
,job_type => 'backup_script'
,job_action => 'C:\script\rmanbackup.rman'
---,credential_name => 'Windowuser'
,start_date => SYSDATE +1/24/59
,repeat_interval => 'FREQ=DAILY; BYHOUR=9; BYMINUTE=38;'
,enabled => TRUE
,comments => 'Full DB BACKUP'
);
END;
/
PL/SQL procedure successfully completed.
-- We update the Password later
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE (
name => 'Full_Backup',
attribute => 'credential_name',
value => 'Windowuser');
END;
/
Getting the DDL of the above Scheduler Package from Oracle database:
1. Get the owner detail
col owner for a8
col job_action for a30
col job_name for a15
col credential_name for a20
select owner,job_name,job_action,credential_name from dba_scheduler_jobs where job_name like 'FULL%';
OWNER JOB_NAME JOB_ACTION CREDENTIAL_NAME -------- --------------- ------------------------------ -------------------- SCOTT FULL_BACKUP C:\script\rmanbackup.rman WINDOWUSER
2.Fetch the DDL of the DBMS Scheduler package with DBMS Metadata package
SELECT DBMS_METADATA.get_ddl('PROCOBJ','FULL_BACKUP', 'SCOTT') AS JOB_DDL FROM dual;
JOB_DDL
-------------------------------------------------------------------------------
BEGIN
dbms_scheduler.create_job('"FULL_BACKUP"',
job_type=>'BACKUP_SCRIPT', job_action=>
'C:\script\rmanbackup.rman'
, number_of_arguments=>0,
start_date=>TO_TIMESTAMP_TZ('15-SEP-2020 08.57.28.000000000 AM +05:30','DD-MON-R
RRR HH.MI.SSXFF AM TZR','NLS_DATE_LANGUAGE=english'), repeat_interval=>
'FREQ=DAILY; BYHOUR=9; BYMINUTE=38;'
, end_date=>NULL,
job_class=>'"DEFAULT_JOB_CLASS"', enabled=>FALSE, auto_drop=>TRUE,comments=>
'Full DB BACKUP'
);
sys.dbms_scheduler.set_attribute('"FULL_BACKUP"','NLS_ENV','NLS_LANGUAGE=''AMERI
CAN'' NLS_TERRITORY=''AMERICA'' NLS_CURRENCY=''$'' NLS_ISO_CURRENCY=''AMERICA''
NLS_NUMERIC_CHARACTERS=''.,'' NLS_CALENDAR=''GREGORIAN'' NLS_DATE_FORMAT=''DD-MO
N-RR'' NLS_DATE_LANGUAGE=''AMERICAN'' NLS_SORT=''BINARY'' NLS_TIME_FORMAT=''HH.M
I.SSXFF AM'' NLS_TIMESTAMP_FORMAT=''DD-MON-RR HH.MI.SSXFF AM'' NLS_TIME_TZ_FORMA
T=''HH.MI.SSXFF AM TZR'' NLS_TIMESTAMP_TZ_FORMAT=''DD-MON-RR HH.MI.SSXFF AM TZR'
' NLS_DUAL_CURRENCY=''$'' NLS_COMP=''BINARY'' NLS_LENGTH_SEMANTICS=''BYTE'' NLS_
NCHAR_CONV_EXCP=''FALSE''');
dbms_scheduler.set_attribute('"FULL_BACKUP"','credential_name',
'"WINDOWUSER"');
COMMIT;
END;