Thursday, October 29, 2015

ORACLE 11G_ HOW TO KNOW THE DDL FOR SCHEDULER-JOBS OR JOB_CLASS

Sometimes we need to create in another environment, a job or job class that it exist in current environment, but we don't know the ddl sintax, then we need to extract the sentence from dual.

In this case we need to know the ddl of job class called HISTORICAL_JOB_CLASS.

If you execute like SYSDBA

SQL> select dbms_metadata.get_ddl('JOB','HISTORICAL_JOB_CLASS') from dual;

the system return this error

ERROR:
ORA-31604: invalid NAME parameter "NAME" for object type JOB in function
SET_FILTER
ORA-06512: at "SYS.DBMS_METADATA", line 5805
ORA-06512: at "SYS.DBMS_METADATA", line 8344
ORA-06512: at line 1

or

If you execute like SYSDBA

SQL> select dbms_metadata.get_ddl('JOB_CLASS','HISTORICAL_JOB_CLASS') from dual;
ERROR:
ORA-31600: invalid input value JOB_CLASS for parameter OBJECT_TYPE in function
GET_DDL
ORA-06512: at "SYS.DBMS_METADATA", line 5805
ORA-06512: at "SYS.DBMS_METADATA", line 8344
ORA-06512: at line 

but if you execute like SYSDBA

SQL>  select dbms_metadata.get_ddl('PROCOBJ','HISTORICAL_JOB_CLASS') from dual;

the system return

BEGIN 
dbms_scheduler.create_job_class('"HISTORICAL_JOB_CLASS"',NULL,'HISTORICO',64,NULL,
'Default Job Class for Bath jobs'
);
COMMIT; 
END; 

That's the right way to know the ddl of job or job_class