В прошлом я выполнял сверку данных только с помощью SQL; в простых случаях (например, 2 набора данных) это очень просто с SQL операциями на основе набора (с использованием комбинации минус) в соответствии с простым двусторонним шаблоном сверки * (ниже):
/* Pattern query for data reconciliation test:
Data differences between the two sets would be the output if there are differences; …
these rows would be the ones to deep dive on to understand/explain the differences.
No rows selected means there are no differences
N.B. the data source connection credentials would be embedded in the database link
*/
(
/* all rows in app1.tableX@link1 that are not found in app2.tableX@link2 */
select col1, col2, col3 /* … */ from app1.tableX@link1
minus
select col1, col2, col3 /* … */ from app2.tableX@link2
(
union
(
/* all rows in app2.tableX@link2 that are not found in app1.tableX@link1 */
select col1, col2, col3 /* … */ from app2.tableX@link2
minus
select col1, col2, col3 /* … */ from app1.tableX@link1
)
;
Результаты запросов такого типа могут быть легко сохранены с помощью «создать таблицу как выбрать…» или «вставить в качестве выбора ...»