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

Oracle 从dbms_metadata.get_ddl检索输出时出错,oracle,ddl,dbms-output,Oracle,Ddl,Dbms Output,当我尝试运行以下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\u DD

当我尝试运行以下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\u DDL中参数对象类型的输入值链无效 Funktion GET_DDL ORA-06512:在“SYS.DBMS_元数据”中,第6069行 ORA-06512:在“SYS.DBMS_元数据”中,第8666行ORA-06512:在第1行中 3160000000-“函数%s中参数%s的输入值%s无效” *原因:为参数提供了空值或无效值。 *操作:更正输入值,然后重试调用

您能给我一些如何检索select输出的建议吗。

可能的对象类型参数列表。并且并非列表中的所有元素都等于dba_objects.object_type。您必须将其转换为适当的值。
在您的例子中,问题是
对象。通常,对于任何调度程序对象,对象类型都是
PROCOBJ
。但我不知道它是否适用于链条


选择dbms_元数据。从dual获取_ddl('PROCOBJ','chain_name')

当对象类型在表中过滤时,为什么它要查看链?我不认为是相关代码导致了异常。第一行异常表示,
OBJECT\u TYPE
的输入值是
CHAIN
而且,为什么不直接查询用户表呢?dbms\u元数据是一个需要调用的昂贵的pkg,不需要给它一个昂贵的查询来提供数据