从dbms_metadata.get_ddl中检索输出时出错

时间:2018-03-30 10:39:24

标签: oracle ddl dbms-output

Helllo all,

当我尝试运行相应的SQL语句时,我收到错误:

 set long 90000
set heading 999
set lines 100
select 
   dbms_metadata.GET_DDL(u.object_type,u.object_name,'MY_SCHEMA')
from  
   dba_objects u
where  
   owner = 'MY_SCHEMA'
   AND OBJECT_TYPE='TABLE';

错误:

  

ORA-31600:函数GET_DDL中参数OBJECT_TYPE的输入值CHAIN无效   Funktion GET_DDL ORA-06512:在“SYS.DBMS_METADATA”中,第6069行   ORA-06512:在“SYS.DBMS_METADATA”中,第8666行ORA-06512:第1行   31600. 00000 - “函数%s中参数%s的输入值%s无效”   *原因:为参数提供了NULL或无效值。   *操作:更正输入值并再次尝试呼叫。

您是否可以提供一些建议,以便我可以检索选择输出。

此致

1 个答案:

答案 0 :(得分:1)

https://docs.oracle.com/database/121/ARPLS/d_metada.htm#BGBIEDIA

可能的对象类型参数列表。并非列表中的所有元素都等于dba_objects.object_type。您必须将其翻译为适当的值 在您的情况下问题是chain对象。通常,对于任何调度程序对象,对象类型为PROCOBJ。但我不知道它是否适用于连锁店。

select dbms_metadata.get_ddl('PROCOBJ','chain_name') from dual;