通过写相关脚本执行即可
如下:
DECLARE
vJobUser VARCHAR2(20);
vPriUser VARCHAR2(20);
vc NUMBER(4):=0;
BEGIN
FOR i IN (SELECT t.LOG_USER,t.NEXT_DATE,t.WHAT,t.interval FROM dba_jobs t WHERE t.JOB>1 ORDER BY t.LOG_USER)
LOOP
vJobUser:=i.log_user;
IF vJobUser<>vPriUser OR vc=0 THEN
dbms_output.put_line('conn '||i.LOG_USER||'/'||i.LOG_USER||'@lXX;');
END IF;
dbms_output.put_line(' ');
dbms_output.put_line('declare');
dbms_output.put_line(' x number;');
dbms_output.put_line('begin');
dbms_output.put_line(' dbms_job.submit(x,'''||i.what||''',to_date('''||to_char(i.next_date,'YYYY-MM-DD HH24:MI:SS')||''',''YYYY-MM-DD HH24:MI:SS''),'''||i.interval||''',FALSE);');
dbms_output.put_line(' commit;');
dbms_output.put_line('end;');
dbms_output.put_line('/');
vPriUser:=vJobUser;
vc:=vc+1;
END LOOP;
如下:
DECLARE
vJobUser VARCHAR2(20);
vPriUser VARCHAR2(20);
vc NUMBER(4):=0;
BEGIN
FOR i IN (SELECT t.LOG_USER,t.NEXT_DATE,t.WHAT,t.interval FROM dba_jobs t WHERE t.JOB>1 ORDER BY t.LOG_USER)
LOOP
vJobUser:=i.log_user;
IF vJobUser<>vPriUser OR vc=0 THEN
dbms_output.put_line('conn '||i.LOG_USER||'/'||i.LOG_USER||'@lXX;');
END IF;
dbms_output.put_line(' ');
dbms_output.put_line('declare');
dbms_output.put_line(' x number;');
dbms_output.put_line('begin');
dbms_output.put_line(' dbms_job.submit(x,'''||i.what||''',to_date('''||to_char(i.next_date,'YYYY-MM-DD HH24:MI:SS')||''',''YYYY-MM-DD HH24:MI:SS''),'''||i.interval||''',FALSE);');
dbms_output.put_line(' commit;');
dbms_output.put_line('end;');
dbms_output.put_line('/');
vPriUser:=vJobUser;
vc:=vc+1;
END LOOP;
END;
-------------------------------
可以考虑使用DBMS_JOB.USER_EXPORT+DBMS_IJOB过程。
-------------------------------