Oracle 甲骨文->;自动更改表的列

Oracle 甲骨文->;自动更改表的列,oracle,plsql,Oracle,Plsql,我们是否可以根据日期自动更改列的值?比如写一本书 程序还是触发器?。我需要在不插入或更新任何其他表/列的情况下更改该值 不是直接的,不是 您可以使用DBMS\u作业或DBMS\u调度程序提交作业,该调度程序将在后台运行,并在将来某个时间点发布更新。插入或更新行时,您可以从触发器提交作业,即 CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT OR UPDATE ON table_name FOR EACH ROW DECLARE

我们是否可以根据日期自动更改列的值?比如写一本书 程序还是触发器?。我需要在不插入或更新任何其他表/列的情况下更改该值

不是直接的,不是

您可以使用
DBMS\u作业
DBMS\u调度程序
提交作业,该调度程序将在后台运行,并在将来某个时间点发布更新。插入或更新行时,您可以从触发器提交作业,即

CREATE OR REPLACE TRIGGER trigger_name
  BEFORE INSERT OR UPDATE ON table_name
  FOR EACH ROW
DECLARE
  l_jobno PLS_INTEGER;
BEGIN
  IF :new.status = 'active'
  THEN 
    dbms_job.submit( l_jobno,
                     q'{UPDATE table_name SET status = 'inactive' WHERE table_id = }' || :new.table_id,
                     sysdate + x ); 
  END IF;
END;

当然,根据我们所讨论的行数,您最好有一个作业,每隔几分钟运行一次,根据您定义的任何条件更新表。

@Justin,我的意思是,该值将自行更改,而无需执行任何更新或插入操作。在x个天数过后,该值将从“活动”变为“非活动”