job_type 为 'EXECUTABLE' 是可以执行os命令或程序 我们可以来演示下
必须的权限:
SQL> grant create EXTERNAL job to test;
授权成功。
SQL> grant create job to test;
授权成功。
job_type为executable时,调用外部命令:
BEGIN
dbms_scheduler.drop_job(job_name => 'scheduler_job_test');
END;
/
BEGIN
dbms_scheduler.purge_log(job_name => 'scheduler_job_test');
END;
/
BEGIN
dbms_scheduler.create_job(job_name => 'scheduler_job_test',
job_type => 'EXECUTABLE',
job_action => 'cmd /c echo %date% %time% >> d:\job_test.txt',
start_date => SYSDATE,
repeat_interval => 'FREQ=MINUTELY; INTERVAL=1;BYSECOND=0,5,10,15,20,25,30,35,40,45,50,55',
enabled => TRUE);
END;
/
来看下效果
G:\Tools\Console2>type d:\job_test.txt
2014/08/15 周五 14:55:25.09
2014/08/15 周五 14:55:30.07
2014/08/15 周五 14:55:35.04
2014/08/15 周五 14:55:40.07
2014/08/15 周五 14:55:45.09
2014/08/15 周五 14:55:50.07
2014/08/15 周五 14:55:55.05
所以job的权限别随意放开啊,不然你懂得