如何复制 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 中运行它?的主要内容,如果未能解决你的问题,请参考以下文章
Toad For Oracle中的不同作业,Sched Chain,Sched Job,Sched Windows和Schedule Job类