Я хотел бы создать сценарии ddl для большинства моих объектов базы данных. dbms_metadata.get_ddl работает для большинства типов объектов. Например следующее создает DDL для зрения:Oracle dbms_metadata.get_ddl для object_type JOB
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 (и TABLE, INDEX, TRIGGER, ...), а не для РАБОТЫ?
Я использую Oracle 10g.
Спасибо. Это работает для меня. – asalamon74
Дополнительное примечание - Oracle должен был исправить это в 11.2, поэтому он работает без этой магии - не проверял. – dpbradley
@dpbradley - они не имеют, по крайней мере, не от 11.2.0.1.0 (Linux x86-64). –