Oracle 데이터베이스에서 다른 애플리케이션으로 증분 데이터 전송 :-작은 제안이라도 매우 유용 할 것입니다.
나는 1 개의 테이블이 있다고 가정하자 Item
. DML
이 테이블에는 매일 많은 일이 있습니다. 이 테이블에서 어떤 DML (Insert update delete)이 발생하든간에이 트랜잭션 데이터를 APIs
.
항목 테이블에 2 개의 레코드가 삽입되고 1 개의 업데이트되고 1 개의 삭제되면 아래 양식으로 다른 응용 프로그램에 데이터를 주입해야합니다. 파일은 json 형식입니다.
I can create below file. My question is regarding how to extract daily transactional data.
{
"insert": ["A1,A2"].
"delete": "B1",
"update": "C1 "
}
위와 같은 것. A1 A2가 Item 테이블에 삽입되면 B1이 삭제되고 C1이 업데이트되었음을 의미합니다. 그래서 나는 변경을 수행하기 위해 대상 응용 프로그램에 위의 형식으로 데이터를 보낼 것입니다.
이를 위해 하나 이상의 테이블을 만들었습니다 Item_trigger
. 또한 trigger
항목 테이블에 만들었습니다 . 따라서 DML이 발생 trigger
하면 Item_trigger
값이있는 테이블에 삽입됩니다.
('A1','Insert'), ('A2','Insert'),('B1','delete'),('C1','Update')
그런 다음 Item_trigger
테이블 을 사용하여 파일을 만들고 데이터를 대상 시스템으로 보냅니다.
위의 디자인은 트리거를 사용하고 있기 때문에 거부되었습니다. 좋은 해결책이 있나요? MV에 대해 생각했지만 삭제는 고려하지 않았습니다. 고려하지 않기 delete
때문에 그것도 사용할 수 없습니다.
디자인을 도와주세요. 어쨌든 사용하지 않고 거래를 기록 할 수 있습니까?trigger
답변
특정 테이블에서 문 수준 감사를 사용할 수 있습니다. 그러나 이는 수행 된 작업 유형에 대한 정보 만 제공하지만 실제 데이터는 제공하지 않습니다. 이 정보를 다른 테이블에 삽입, 삭제 및 업데이트 한 값을 저장하는 것과 결합하거나 기본 테이블을 사용하여 데이터를 직접 전송할 수 있습니다.
아래는 스크립트입니다
audit select,insert,update,delete on test.test_audit by access;
delete from test_audit where id <= 10;
select * from Dba_Audit_Object where OBJ_NAME='TEST_AUDIT';