Лучший способ сравнить содержимое двух таблиц в Teradata?

Когда вам нужно сравнить две таблицы, чтобы увидеть, в чем различия, используете ли вы какие-либо инструменты или ярлыки, или вы вручную кодируете SQL для сравнения двух таблиц?

По сути, это основные функции такого продукта, как Red Gate SQL Data Compare (схемы для моих таблиц обычно всегда совпадают).

Справочная информация. В моей среде SQL Server я создал хранимую процедуру, которая проверяет метаданные двух таблиц/представлений, создает запрос (как динамический sql), который объединяет две таблицы в указанных ключевых столбцах и сравнивает данные в столбцах сравнения. , сообщая о ключевых различиях и различиях в данных. Запрос можно либо распечатать и изменить/скопировать, либо просто выполнить как есть. К сожалению, нам не разрешено создавать хранимые процедуры в нашей среде Teradata.


person Cade Roux    schedule 18.03.2010    source источник


Ответы (2)


Похоже на инструмент профилирования данных, такой как Talend Open Profiler тогда это было бы наиболее разумно.

Вы можете написать оператор BTEQ, который строит запрос, аналогичный вашей хранимой процедуре SQL Server, а затем экспортирует динамически построенный SQL. Затем вы, в свою очередь, можете запустить это внутри своего BTEQ. Это может показаться громоздким, но при достаточной решимости вы, вероятно, сможете что-то смоделировать.

person Rob Paller    schedule 18.03.2010

Я не знаю, правильный ли это ответ, который вы ищете.

sel * from database_name1.table_name1
minus
sel * from database_name2.table_name2;

вы можете сделать то же самое, выбрав определенные столбцы. Это в основном даст несуществующие строки из таблицы 2, которые находятся в таблице 1.

Если вы не искали этот тип ответа, пожалуйста, игнорируйте это и продолжайте.

Также вы можете выбрать, как показано ниже.

select 
table1.keycol1,
table2.keycol2,
(table1.factcol1 - table2.factcol2) as diff
from table1
inner join 
table2
on table1.keycol1 = table2.keycol1
and table1.keycol2 = table2.keycol2
where diff <> 0

Это был просто анализ, который может дать представление. Пожалуйста, игнорируйте любые синтаксические и программные ошибки. Надеюсь это поможет.

person Enjoy coding    schedule 06.05.2010
comment
Спасибо — это код, аналогичный тому, что генерирует наш инструмент на SQL Server. - person Cade Roux; 06.05.2010