每天运行Oracle SQL更新脚本

时间:2011-11-10 10:59:16

标签: sql oracle sql-update

我想知道每天运行一些SQL代码最快,最简单,最有效的方法是什么?我们有许多我们想要运行的更新脚本,现在没有简单的方法。我似乎无法在Oracle SQL Developer中找到任何选项。

(我想有一种方法可能是每晚运行一个PHP文件,虽然根据经验它有严重的权限问题,并且每晚都打开一个IE实例,之后无法关闭它)

由于

3 个答案:

答案 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并运行您的脚本,或者如果您想处理输出,您可以将其包装在批处理文件中吗?

Unix / Linux / Mac

与计划任务等效的Unixy是CRON作业,它们以类似的方式工作,你可以再次直接调用SQLPLUS,或者你可以调用shell脚本来处理输出/错误等。

希望这有帮助。

答案 2 :(得分:1)

Linux / unix上的cron作业系统或Windows上的预定任务