ほとんどのデータベースオブジェクトの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が表示されます(object_type ='VIEW'でフィルタリングされた場合にSAMPLE_VIEWが表示されるのと同じです)。
JOBではなくVIEW(およびTABLE、INDEX、TRIGGERなど)で機能するのはなぜですか?
Oracle10gを使用しています。