我想爲我的大部分數據庫對象創建ddl腳本。 dbms_metadata.get_ddl適用於大多數對象類型。例如,以下內容爲視圖創建ddl:Oracle的object_type的dbms_metadata.get_ddl 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,...)中工作而不是在JOB中工作?
我正在使用Oracle 10g。
感謝。這對我有用。 – asalamon74 2010-07-13 12:57:17
還有一點需要注意的地方 - 甲骨文本應該在11.2中解決這個問題,所以它沒有這個魔法 - 沒有檢查過。 – dpbradley 2010-07-13 13:05:23
@dpbradley - 他們還沒有,至少不是11.2.0.1.0(Linux x86-64)。 – 2011-07-19 20:29:06