Отправка дополнительных данных в другое приложение из базы данных 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
на таблице Item. поэтому, если произойдет какой-либо 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';