Техника отладки Oracle для различия строк - PullRequest
3 голосов
/ 08 июня 2011

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

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

Есть ли инструмент?

Ответы [ 2 ]

4 голосов
/ 08 июня 2011

Если существует связь между двумя базами данных и что возвращаемые данные соответствуют большинству рассматриваемых строк, вы можете использовать операцию MINUS. Что-то вроде

SELECT list_of_columns
  FROM some_table
 WHERE some_criteria
MINUS
SELECT list_of_columns
  FROM some_table@db_link_to_dev
 WHERE some_criteria

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

2 голосов
/ 08 июня 2011

Если вы можете сохранить наборы результатов в виде простых файлов, то вы также можете получить копию бесплатной утилиты WinMerge с открытым исходным кодом и сравнить результаты. Это исключает необходимость создания каких-либо дополнительных объектов базы данных. Кроме того, WinMerge сам по себе является ценным инструментом.

РЕДАКТИРОВАТЬ: Предполагая окна, конечно. * Nix решение может быть diff.

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