我有一个触发器,它将数据从一个表发送到另一个数据库中的另一个表。一切正常。
问题是有一个新概念END DATE
,其中,如果END DATE
一个人出现,该行应该在该特定日期到达另一个表。
例如:如果某人的结束日期是 8 月 31 日,它应该只在那天进行,但是当然,我的触发器在事件更改时触发(当 enddate 设置为 8 月 31 日时)..
你能告诉我我能做些什么来设置行继续ENDDATE
吗?
听起来你不想要触发器。听起来你想要一份工作。例如,如果您创建一个过程来传输end_date
今天的所有行
CREATE OR REPLACE PROCEDURE move_rows_with_end_date(
p_end_date IN DATE DEFAULT trunc(SYSDATE)
)
AS
BEGIN
INSERT INTO table_name@remote_database( <<list of columns>> )
SELECT <<list of columns>>
FROM table_name
WHERE end_date = trunc(sysdate);
END;
然后您可以创建一个每天午夜运行该过程的作业
DECLARE
l_jobno PLS_INTEGER;
BEGIN
dbms_job.submit( l_jobno,
'BEGIN move_rows_with_end_date; END;',
trunc(sysdate+1),
'trunc(sysdate+1)' );
commit;
END;