Я бы хотел создать сценарии ddl для большинства объектов моей базы данных. dbms_metadata.get_ddl работает для большинства типов объектов. Например, следующее создает ddl для представления:
select dbms_metadata.get_ddl ( 'VIEW', 'SAMPLE_VIEW') from dual
С другой стороны, он не работает для object_type 'JOB'. Следующее:
select dbms_metadata.get_ddl( 'JOB', 'SAMPLE_JOB' ) from dual
выдает следующую ошибку:
ORA-31604: invalid NAME parameter "NAME" for object type JOB in function SET_FILTER
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 116
ORA-06512: at "SYS.DBMS_METADATA_INT", line 4705
ORA-06512: at "SYS.DBMS_METADATA_INT", line 8582
ORA-06512: at "SYS.DBMS_METADATA", line 2882
ORA-06512: at "SYS.DBMS_METADATA", line 2748
ORA-06512: at "SYS.DBMS_METADATA", line 4333
ORA-06512: at line 1
Если я перечислю свою работу, используя
select * from user_objects where object_type='JOB'
показывает SAMPLE_JOB (точно так же, как показывает SAMPLE_VIEW, если отфильтровано для object_type = 'VIEW').
Почему он работает для VIEW (и TABLE, INDEX, TRIGGER, ...), а не для JOB?
Я использую Oracle 10g.