您的位置:首页 > 数据库 > Oracle

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

2015-11-21 18:50 585 查看
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就迁移完成了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: