ITPub博客

首页 > 数据库 > Oracle > Oracle Job 迁移小记

Oracle Job 迁移小记

原创 Oracle 作者:huangxuemail 时间:2017-05-08 14:51:30 0 删除 编辑
之前在做数据迁移的时候发现有用户的job没有迁移成功,原因是job号冲突导致,今天写了个sql,用于job的迁移.

1.对于job的导出,可使用dbms_job.user_export,需要使用job的拥有者进行登录 ,执行后该用户的job都以DDL的行式列出来
conn tttest/tt123
set lin 300
set echo on
set serveroutput on size 1000000 format wrapped
declare
v_jobno varchar2(3000);
jobcall varchar2(3000);
cursor c_jobs is select job from user_jobs;
begin
OPEN c_jobs;
loop
fetch c_jobs into v_jobno;
dbms_job.user_export(v_jobno, jobcall);
dbms_output.put_line('');
dbms_output.put_line(jobcall);
exit when c_jobs%NOTFOUND;
end loop;
end;
/

2.用前面生成的job信息来手动新建job
dbms_job包下有2种创建job的方式:submit和isubmit. 区别就是使用submit不必提供job号,系统自动生成.  使用isubmit就需要显示提供job号.
VARIABLE jobno number;
begin
dbms_job.submit(:jobno,what=>'dbms_refresh.refresh(''"MILES"."MV_TF_FILTER_TFPLAN"'');',next_date=>to_date('2017-05-08:13:24:47','YYYY-MM-DD:HH24:MI:SS'),interval=>'(SYSDATE+1/17280) ',no_parse=>TRUE);
end;
/
commit;

exec dbms_job.isubmit(job=>888,what=>'PROPLANNER.ZMD_Ausleitung;',next_date=>to_date('4000-01-01:00:00:00','YYYY-MM-DD:HH24:MI:SS'),interval=>'NEXT_DAY(TRUNC(SYSDATE), ''FREITAG'')+22/24',no_parse=>TRUE);
commit;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26753337/viewspace-2138696/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2013-03-05

  • 博文量
    28
  • 访问量
    175109