asa*_*n74 6 oracle jobs oracle10g dbms-metadata ora-06512
我想为我的大多数数据库对象创建ddl脚本.dbms_metadata.get_ddl适用于大多数对象类型.例如,以下内容为视图创建ddl:
select dbms_metadata.get_ddl ( 'VIEW', 'SAMPLE_VIEW') from dual
Run Code Online (Sandbox Code Playgroud)
另一方面,它不适用于object_type'JOB'.下列:
select dbms_metadata.get_ddl( 'JOB', 'SAMPLE_JOB' ) from dual
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
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
Run Code Online (Sandbox Code Playgroud)
如果我使用列出我的工作
select * from user_objects where object_type='JOB'
Run Code Online (Sandbox Code Playgroud)
它显示了SAMPLE_JOB(就像它显示了SAMPLE_VIEW,如果过滤了object_type ='VIEW').
为什么它适用于VIEW(以及TABLE,INDEX,TRIGGER,...)而不适用于JOB?
我正在使用Oracle 10g.
dpb*_*ley 12
select dbms_metadata.get_ddl('PROCOBJ', 'yourJobNameGoesHere') from dual;
Run Code Online (Sandbox Code Playgroud)
PROCOBJ是程序对象.