【问题标题】:oracle trigger queryoracle触发查询
【发布时间】:2012-07-28 21:47:26
【问题描述】:

我有一个触发器,它将数据从一个表发送到另一个数据库中的另一个表。一切正常。

问题在于有一个新概念END DATE,其中,如果END DATE 存在于某个人,则该行应该在该特定日期到达另一个表。.

例如:如果某人的结束日期是 8 月 31 日,它应该只在那天继续,但是当然,我的触发器会在事件更改时触发(当 enddate 设置为 8 月 31 日时)..

您能否建议我如何设置行继续ENDDATE.?

【问题讨论】:

    标签: oracle triggers plsql jobs procedure


    【解决方案1】:

    听起来你不想触发。听起来你想要一份工作。例如,如果您创建一个过程来传输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;
    

    【讨论】:

    • 实际上 Justin,使用触发器是合理的,因为我需要在整个结束日期概念到位之前实时发送行。但我会尝试将带有结束日期的行放入此过程作业中并尝试..非常感谢您的输入
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多