Во время перехода с оракула на MySQL, как сравнить данные между двумя с помощью Java - PullRequest
1 голос
/ 07 июня 2011

Я перенес данные из Oracle в MySQL, используя MySQL Migration Toolkit в качестве POC.Теперь я хочу сравнить данные из одних и тех же таблиц разных баз данных с Java.

Я сделал простое общее количество строк таблиц в двух базах данных.Но я хочу проверить каждую строку двух таблиц, чтобы можно было рассчитать любое обновление в любом сообщении таблицы оракула или во время миграции.

1 Ответ

0 голосов
/ 07 июня 2011

Это может звучать немного глупо, но как насчет простой программы, которая просто читает обе базы данных и сравнивает данные?

Вы можете написать класс, содержащий все данные из одной строки, переопределить equals () и hashCode (), затем прочитать обе таблицы и сравнить их, используя созданный класс.

public class MyRow {
    int someVal;
    String someOtherVal;
    // etc
    public boolean equals(Object obj) {} // implement this
    public int hashCode(){} // implement this
}

Тогда в вашей программе:

List<MyRow> mysqlRows = readMysql();
List<MyRow> oracleRows = readOracleRows();
for (MyRow mysqlRow : mysqlRows) {
    if (!mysqlRow.equals(oracleRows.get(index)) {
        // log error
    }
}

Конечно, вы можете рассмотреть возможность чтения таблиц по строкам за раз, если количество строк огромно и использование памяти является проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...