ORACLE迁移中的一些经验(二)批量导出job,并在目标库创建

原创 2015年11月21日 18:50:04

1、 批量导出创建job,语句如下:

SELECT  'SYS.dbms_job.submit(job => :job,what => '''||what||''',next_date => to_date('''||to_char(next_date,'dd-mm-yyyy hh24:mi:ss')||''', ''dd-mm-yyyy hh24:mi:ss''),interval => '''||INTERVAL||''');' FROM dba_jobs; 

例子:

SQL> SQL> SELECT  'SYS.dbms_job.submit(job => :job,what => '''||what||''',next_date => to_date('''||to_char(next_date,'dd-mm-yyyy hh24:mi:ss')||''', ''dd-mm-yyyy hh24:mi:ss''),interval => '''||INTERVAL||''');' FROM dba_jobs; 


'SYS.DBMS_JOB.SUBMIT(JOB=>:JOB,WHAT=>'''||WHAT||''',NEXT_DATE=>TO_DATE('''||TO_CHAR(NEXT_DATE,'DD-MM-YYYYHH24:MI:SS')||''',''DD-MM-YYYYHH24:MI:SS''),INTERVAL=>'''||INTERVAL||''');'
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SYS.dbms_job.submit(job => :job,what => 'xyz_pkg.xyz_p1;',next_date => to_date('21-11-2015 15:26:22', 'dd-mm-yyyy hh24:mi:ss'),interval => 'sysdate+1/1440');
SYS.dbms_job.submit(job => :job,what => 'xyz_pkg.xyz_p2;',next_date => to_date('21-11-2015 15:26:17', 'dd-mm-yyyy hh24:mi:ss'),interval => 'sysdate+1/1440');


2、新库创建JOB

将上面产生的语句加入至:

VAR job NUMBER
begin
SYS.dbms_job.submit(job => :job,what => 'xyz_pkg.xyz_p1;',next_date => to_date('21-11-2015 15:26:22', 'dd-mm-yyyy hh24:mi:ss'),interval => 'sysdate+1/1440');
SYS.dbms_job.submit(job => :job,what => 'xyz_pkg.xyz_p2;',next_date => to_date('21-11-2015 15:26:17', 'dd-mm-yyyy hh24:mi:ss'),interval => 'sysdate+1/1440');
COMMIT;
END;

使用SYS执行就可以了。


2、然后修改job的属主

脚本如下:

set serveroutput on
declare
    v_job_id number;
    v_user varchar2(50);
    v_nlsenv VARCHAR2(4000);
    cursor c_tab is select job,schema_user,nls_env from dba_jobs where log_user='SYS';
begin
    open c_tab;
    loop
         fetch c_tab into v_job_id,v_user,v_nlsenv;
         exit when c_tab%NOTFOUND;
         sys.dbms_ijob.CHANGE_ENV(v_job_id,'TONY','TONY','TONY',v_nlsenv);   ----修改目标用户
         commit;
    end loop;
    close c_tab;
end;
/

修改完属主,JOB就迁移完成了。





oracle jobs 导出为执行脚本

/*oracle jobs 导出为执行脚本  就是把user_jobs或dba_jobs,导成DBMS_JOB.SUBMIT可以插入job的格式  其中user_jobs是当前用户的job,dba_j...
  • inreyou
  • inreyou
  • 2007年11月26日 16:15
  • 1155

Oracle job及导入导出数据库

--1.job工作流程 create table test_job(para_date date); commit; insert into test_job values(sysdat...
  • RonaldoZH
  • RonaldoZH
  • 2015年11月20日 17:46
  • 1689

Oracle迁移之批量迁移INDEX、SEQUENCE、VIEW

通过java程序处理oracle数据库索引(INDEX)、序列(SEQUENCE)、视图(VIEW)、触发器(TRIGGER)、函数(FUNCTION)等的迁移。...
  • loongshawn
  • loongshawn
  • 2016年01月26日 11:54
  • 1919

oracle JOB迁移办法

在系统迁移或升级的时候,可能会有oracle JOB迁移的需求。对于10G的系统好说。可以用下面的办法:userid="/ as sysdba"directory=EXP_DIRdumpfile=ex...
  • henrybai
  • henrybai
  • 2010年01月21日 15:56
  • 1351

oracle中 导出job定义语句

https://dba.stackexchange.com/questions/73836/exporting-scheduled-jobs-in-oracle SELECT dbms_...
  • mosakashaka
  • mosakashaka
  • 2017年04月24日 10:10
  • 833

oracle job导出导入

直接在command命令窗口执行如下sql即可, 大号字体的路径是你自己设置的, SET SERVEROUTPUT OFF SET TERMOUT OFF set linesize 10...
  • heqinghua217
  • heqinghua217
  • 2016年04月07日 11:46
  • 661

ORACLE迁移中的一些经验(一)批量导出sequence

批量导出squence 在网上找到这样一条语句: select 'create sequence ' || sequence_name || ' minvalue ' || min_value |...
  • tonyzhou_cn
  • tonyzhou_cn
  • 2015年11月21日 16:56
  • 320

【ORACLE】生产环境使用数据泵impd,expdp进行数据迁移

3.1 按照版本导出 [oracle@host2 ~]$ expdp system/oracle tablespaces=u1 dumpfile='u1_version.dump' director...
  • u011538954
  • u011538954
  • 2014年09月04日 14:42
  • 2263

使用Oracle的Job+Procedure实现数据的定时迁移备份

--创建数据迁移的日志表,记录自动数据迁移的执行时间 create table mc_movedata_log( id varchar2(50) default sys_guid(), tb_n...
  • z69183787
  • z69183787
  • 2014年12月16日 10:23
  • 2044

使用Toad生成Oracle Scheduler Job DDL

最近需要在不同的数据库之前迁移Oracle scheduler job,首先想到的办法是通过datapump来直接到导出Oracle scheduler job,然后使用dump file来生成ddl...
  • robinson_0612
  • robinson_0612
  • 2013年12月09日 11:29
  • 5122
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE迁移中的一些经验(二)批量导出job,并在目标库创建
举报原因:
原因补充:

(最多只允许输入30个字)