Table 변경시 외부 프로그램(C++, C#) 실행시키는 방법. 0 4 1,533

by 아리수 [Oracle 기초] 트리거 trigger Cs C Cpp [2020.07.28 11:02:24]


오라클에서 Trigger사용하면 INSERT, UPDATE, DELETE 시 다른 프로시저나 작업을 실행되도록 작성할 수 있습니다. 

여기서 Table의 변경(INSERT, UPDATE, DELETE)이 있을 때 외부 프로그램에서 감지하고 실행되도록 하려고 합니다. 

간단하게 생각하기로는 1초 주기로 Table을 읽고 변경을 감지하면 될 것 같은데 

좀 세련된(?) 방법이 있을 꺼 같아서 글 남겨봅니다. 

예를 들면

INSERT, UPDATE, DELETE  시 Trigger에서 message를 외부프로그램으로 전달한다거나, ...

 

감사합니다.

by 우리집아찌 [2020.07.28 12:22:29]

INSERT / UPDATE 시에는

보통은 INSERT 날짜 UPDATE 날짜 가지고 조회해서 배치 처리 합니다. 물론 로그도 남깁니다.

에러나면 다시 로그읽어서 최종 배치된 날짜로 읽어서 다시 처리합니다.

 

아니면

INSERT / UPDATE / DELETE 시 해당 프로시저 같이 실행해줍니다. ..

근데 데이터가 빈번하게 작업되면  성능 문제가 일어날수도 있습니다.

 


by 아리수 [2020.07.28 12:41:56]

답변 감사합니다. 

말씀하신 내용은 외부프로그램(C, C# 으로 만들어진)에서 해당 테이블의 값을 주기적으로 읽어서(Select) 

날짜정보를 비교하여 처리하라는 거죠?


by 우리집아찌 [2020.07.28 12:45:43]

보통은 그렇게 처리하고 있습니다.

TRIGGER 사용시는 주로 로그성 정보를 관리할때 사용합니다.

 


by 마농 [2020.07.28 13:14:05]

테이블을 직접 읽어 변경여부 판별하기 어려울 텐데요?
테이블에 변경 기록여부 컬럼이 존재한다거나 해야 일부 가능하죠.
트리거로 변경사항을 별도 로그테이블에 기록하고
그 로그정보를 주기적으로 읽어 처리하면 될 듯 합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입