oracle - ORA-31600 : invalid input value CHAIN for parameter OBJECT_TYPE

标签 oracle oracle11g export ddl dbms-scheduler

当我尝试导出在 Oracle 11g 上创建的完整调度程序链(包括步骤、规则等)时,出现以下错误:

ORA-31600: invalid input value CHAIN for parameter OBJECT_TYPE in function GET_DDL 
ORA-06512: at "SYS.DBMS_METADATA", line 5805
ORA-06512: at "SYS.DBMS_METADATA", line 8344 
ORA-06512: at line 1

消息含义

31600. 00000 -  "invalid input value %s for parameter %s in function %s"
*Cause:    A NULL or invalid value was supplied for the parameter.
*Action:   Correct the input value and try the call again.

失败的查询是:

select dbms_metadata.get_ddl('CHAIN','RUN_SERVICE_IP') from dual;

我们能够导出(获取 DDL)链吗?导出整个链条设置的替代方案是什么?

最佳答案

以下内容在 Oracle 12c 上正确,我无法测试早期版本。

您需要将'PROCOBJ'指定为OBJECT_TYPE,因此:

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

这对于程序、作业和链有效。作业定义将包括属性。链定义将包括链步骤,但奇怪的是不包括链规则。这些您只能从 View *_SCHEDULER_CHAIN_RULES 中获取,例如

select 'dbms_scheduler.define_chain_rule(
  chain_name => ''' || chain_name || ''',
  condition => ''' || condition || ''',
  action => ''' || action || ''',
  rule_name => ''' || rule_name || ''',
  comments => ''' || comments || '''
);'
from user_scheduler_chain_rules;

关于oracle - ORA-31600 : invalid input value CHAIN for parameter OBJECT_TYPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30471690/

相关文章:

mysql - Unix时间戳转换在Mysql和Oracle中是不同的

SQL查询帮助-任务排序、分组和状态+日期条件问题

sql - 使用PL/SQL或SQL中的循环杀死oracle session

sql-server - 如何将 SQL Server 2005 中的数据导入和导出为 XML 格式?

iphone - UIImageWriteToSavedPhotosAlbum 仅保存 10 张图像中的 5 张。为什么?

oracle - 如何创建包含多个数据文件的表空间?

oracle - 在Oracle中将本地日期时间(带时区)转换为Unix时间戳

oracle - 如何确定Oracle包中子程序的类型

oracle - ORA-24247: 发送电子邮件 oracle 时网络访问被访问控制列表 (ACL) 拒绝

ios - 在同一个文件中导出文本和图像