Oracle 触发器每天更新列

0 oracle oracle-10g

我正在尝试创建一个每天运行两次并根据特定条件进行更新的触发器。

在 Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi 上运行

我们有带有列的表 A 和表 B

  1. 首要的关键
  2. 日期 1
  3. 日期 2
  4. 日期 3
  5. 地位

对于表 A 中指定的一组主键,在表 A.Status==Completed 之前,我希望每天两次将日期字段从表 B 复制到表 A。表 B 中已经设置了相同的主键。随着主键列表中的更多记录达到已完成状态,要更新的记录数将随着时间的推移而减少。

目的是在日期字段上维护某些静态值,直到状态==完成。我们无法控制不断覆盖它们的外部系统。作为权宜之计,我们希望以频繁的时间间隔重写它们以具有维护静态值的概念。一旦我们列表中的所有 PK 都达到完成状态,我们想要关闭触发器。

Dav*_*dge 6

这不是触发器的作用——它们作用于事件,例如数据更改。

使用 DBMS_Scheduler 设置重复事件。

考虑应用基于函数的索引以仅包含那些需要更新的行,并确保查询的构造能够使用它。