如何复制 JOB、PROGRAM、SCHEDULE 定义以在另一个 Oracle 11g DB 中运行它?

Posted

技术标签:

【中文标题】如何复制 JOB、PROGRAM、SCHEDULE 定义以在另一个 Oracle 11g DB 中运行它?【英文标题】:How to copy a JOB, PROGRAM, SCHEDULE definition to run it in another Oracle 11g DB? 【发布时间】:2016-05-11 19:39:30 【问题描述】:

我需要将一些作业、计划和程序从 Oracle 11g 数据库复制到另一个数据库,但是当我尝试在 SQL Developer 4.1.3 上查找作业/计划/程序的 SQL 时,SQL 选项卡没有显示任何内容在编辑模式。

当我打开一个表并单击 SQL 选项卡时,会显示用于创建表的 SQL。我期待 Job/Schedule/Program 有类似的行为。

如何复制 JOB/PROGRAM/SCHEDULE 定义以在另一个 Oracle 11g DB 中运行它?

【问题讨论】:

【参考方案1】:

乔布斯最简单的方法是使用DBMS_METADATA

select dbms_metadata.get_ddl('PROCOBJ', job_name) 
from user_scheduler_jobs;

不过,我不能 100% 确定时间表/节目。

【讨论】:

谢谢!!!这适用于 JOB、PROGRAM 和 SCHEDULE。出于某种原因,我得到 2 行具有相同信息但有效。【参考方案2】:

我认为您也可以使用 expdp 实用程序并使用 include=PROCOBJ。所有计划都是对象类型 PROCOBJ。您应该拥有您正在导出的架构拥有的所有工作。 (如果你想要 DDL,你可以使用 impdp 和 sqlfile= 将转储写入 SQL 文件。或者使用 Frank Schmitt 建议的方法)

不幸的是,我认为如果您使用此方法或 Frank Schmitt 建议的方法,我认为您将无法获得 SYS 拥有的时间表。

【讨论】:

以上是关于如何复制 JOB、PROGRAM、SCHEDULE 定义以在另一个 Oracle 11g DB 中运行它?的主要内容,如果未能解决你的问题,请参考以下文章

oracle里的job和schedule有啥区别

python任务调度之schedule

英语schedule job怎么翻译?

定时任务schedule(quartz)

模块 schedule 定时任务

Toad For Oracle中的不同作业,Sched Chain,Sched Job,Sched Windows和Schedule Job类