我想知道每天运行一些SQL代码最快,最简单,最有效的方法是什么?我们有许多我们想要运行的更新脚本,现在没有简单的方法。我似乎无法在Oracle SQL Developer中找到任何选项。
(我想有一种方法可能是每晚运行一个PHP文件,虽然根据经验它有严重的权限问题,并且每晚都打开一个IE实例,之后无法关闭它)
由于
答案 0 :(得分:10)
Oracle数据库有许多用于运行预定作业的选项,这意味着您不必依赖操作系统(如Linux / Unix中的cron)。
您可以使用较旧的DBMS_JOB套餐,也可以使用较新且更复杂的DBMS_SCHEDULER 10g。
示例:
BEGIN
DBMS_SCHEDULER.create_job (
job_name => 'gather_stats_for_scott', -- this name is arbitrary
job_type => 'PLSQL_BLOCK', --see possible job types here http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_sched.htm#i1000363
job_action => 'BEGIN DBMS_STATS.gather_schema_stats(''SCOTT''); END;',
start_date => SYSTIMESTAMP, --start now
repeat_interval => 'freq=daily',
end_date => NULL,
enabled => TRUE,
comments => 'This job does this and that' --arbitrary comment
);
END
答案 1 :(得分:3)
有许多选项,两个最简单的想法是依赖于平台:
设置Windows计划任务,该任务将由您运行@ defined period。您可以使用它来直接调用SQLPLUS并运行您的脚本,或者如果您想处理输出,您可以将其包装在批处理文件中吗?
与计划任务等效的Unixy是CRON作业,它们以类似的方式工作,你可以再次直接调用SQLPLUS,或者你可以调用shell脚本来处理输出/错误等。
希望这有帮助。
答案 2 :(得分:1)
Linux / unix上的cron作业系统或Windows上的预定任务