Oracle Job 遷移小記

huangxuemail發表於2017-05-08
之前在做資料遷移的時候發現有使用者的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部落格 ” ,連結:http://blog.itpub.net/26753337/viewspace-2138696/,如需轉載,請註明出處,否則將追究法律責任。

相關文章