sql - 每天运行一个 Oracle SQL 更新脚本

标签 sql oracle sql-update

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

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

谢谢

最佳答案

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

关于sql - 每天运行一个 Oracle SQL 更新脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078460/

相关文章:

mysql - 如何在 Ruby/Rails activerecord sql 条件中包含反斜杠?

sql - 如何根据表之间的差异更新不同的列

mysql - 找出昨天和今天之间出勤率下降最大的 SQL

database - 为什么不建议以编程方式更改表结构?

SQL - 从 Select + 用户定义的列和值创建表

java - 在 hibernate native 查询中设置列表不起作用

java - 我的 SQLPreparedStatement 有什么问题?

oracle - GeoServer:如何记录 SQL 查询?

php - mysql_query() 期望参数 1 为字符串

使用 group by 进行 SQL Server 更新