2012-07-31 3 views
0

나는 테이블에서 다른 데이터베이스의 다른 테이블로 데이터를 보내는 트리거를 가지고 있습니다. 모두 잘 작동합니다.오라클 트리거 쿼리

확률값은 .. END DATE이 존재하는 사람, 행이 특정 날짜에 다른 테이블에 도달해야하는 경우에 END DATE의 새로운 개념이 있다는 누군가의 경우

예 :이다 종료일은 8 월 31 일이며, 그 날에만 가야하지만 당연히 이벤트가 바뀌면 내 방아쇠가 발사됩니다 (만료 날짜가 8 월 31 일인 경우).

내가 할 수있는 일을 제안 해주세요. 행을 ENDDATE으로 설정하십시오.?

답변

3

트리거를 원하지 않는 것처럼 들리지는 않습니다. 너 한테 직업이있는 것 같아. 당신이 프로 시저를 만들 예를 들어, 그 누구의 end_date 오늘

CREATE OR REPLACE PROCEDURE move_rows_with_end_date(
    p_end_date IN DATE DEFAULT trunc(SYSDATE) 
) 
AS 
BEGIN 
    INSERT INTO [email protected]_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; 
+0

실제로 저스틴의 사용 이 전체 종료 날짜 개념이 자리 잡기 전에 실시간으로 행을 보내야하기 때문에 트리거가 정당화되었습니다. 하지만이 과정에 끝 날짜가있는 행을 넣으려고 시도하고 시도해 보겠습니다. ur 입력에 대해 감사드립니다. – MayankG

+0

감사합니다 저스틴! – MayankG