oracle 计划每天更新一次条目的DB脚本

mrphzbgm  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(101)

调度缺少属性的DB脚本更新条目的最有效方法是什么?插入到数据库中的SQL有时会丢失一个属性,我想安排一些类似SQL脚本的东西,检查指定的条目,并根据现有的数据库表每天更新一次。我使用的是Oracle DB 19c版本。

w8biq8rn

w8biq8rn1#

好吧,对我来说,看起来“最有效”的方法也是“唯一”的方法-一个存储过程(它更新那些 * 条目 *)正在调度(由dbms_scheduler)。
我们假设这个过程名为p_update_entries。我就不用猜密码了。
然后你会安排它,例如。作为

BEGIN
   DBMS_SCHEDULER.CREATE_JOB (
      job_name         => 'p_update_entries',
      job_type         => 'PLSQL_BLOCK',
      job_action       => 'BEGIN p_update_entries; end;',
      start_date       =>
         TO_TIMESTAMP_TZ ('25.08.2023 09:00 Europe/Zagreb',
                          'dd.mm.yyyy hh24:mi TZR'),
      repeat_interval  =>
         'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=2; BYMINUTE=0',
      enabled          => TRUE,
      comments         => 'Fixing missing entries');
END;
/

这意味着该程序将从周一到周五每天运行(即不会在周末跑步)在凌晨02:00。如果你认为你不能根据你的需要调整它,请参阅文档以获取更多信息。
还有其他选择吗?从理论上讲,是的-你可以手动运行程序。
数据库触发器可能不会有帮助,因为你想做它 * 一天一次 *,而触发器触发 * 现在 *,每次在底层表中发生变化。
我想不出其他的选择但其他人可能会

相关问题