0

テーブルから別のデータベースの別のテーブルにデータを送信するトリガーがあります。すべて正常に動作しています。

可能性としては、の新しい概念がありEND DATE、 が人に存在する場合END DATE、その特定の日付に行が他のテーブルに到達する必要があるということです。

例: 誰かの終了日が 8 月 31 日の場合、その日のみに実行する必要がありますが、もちろん、私のトリガーはイベントの変更時に発生します (終了日が 8 月 31 日に設定されている場合)。

行を継続するように設定するために私にできることを教えてくださいENDDATE

4

1 に答える 1

3

トリガーが必要ないようには聞こえません。仕事が欲しいそうです。たとえば、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;
于 2012-07-31T07:29:38.980 に答える