2010-03-18 8 views
0

두 테이블을 비교하여 차이점을 확인해야하는 경우 사용하는 도구 나 바로 가기가 있습니까? 아니면 두 테이블을 비교하기 위해 SQL 코드를 직접 코딩합니까?Teradata에서 두 테이블의 내용을 비교하는 가장 좋은 방법은 무엇입니까?

기본적으로 Red Gate SQL 데이터 비교 (내 테이블의 스키마는 항상 일치)와 같은 제품의 핵심 기능입니다.

배경 : SQL Server 환경에서 두 테이블/뷰의 메타 데이터를 검사하고 지정된 키 열의 두 테이블을 조인하는 쿼리 (동적 SQL)를 만들고 데이터를 비교하는 저장 프로 시저를 만들었습니다 비교 열에서 키 차이 및 데이터 차이를보고합니다. 쿼리는 인쇄하거나 수정/복사하거나 그대로 방영 할 수 있습니다. 불행히도 우리는 Teradata 환경에서 저장 프로 시저를 만들 수 없습니다.

답변

1

Talend's Open Profiler과 같은 데이터 프로파일 링 도구와 같은 사운드는 그 시점에서 가장 의미가 있습니다.

SQL Server 저장 프로 시저와 비슷한 쿼리를 작성한 BTEQ 문을 작성한 다음 동적으로 작성된 SQL을 내보낼 수 있습니다. 그런 다음 BTEQ 내부에서 실행할 수 있습니다. 그것은 귀찮은 일 이겠지만, 충분한 결심을하면 아마 뭔가를 조롱 할 수 있습니다.

1

나는 이것이 당신이 찾고있는 정답인지 잘 모릅니다.

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

특정 열을 선택하여 동일하게 적용 할 수 있습니다. 이것은 기본적으로 table1에있는 table2의 존재하지 않는 행을 제공합니다.

이 유형의 답변을 찾고 계시지 않으시는 경우이 질문을 무시하고 계속하십시오.

또한 아래와 같이 선택할 수 있습니다.

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 

이것은 아이디어를 줄 수있는 분석 일뿐입니다. 구문상의 오류 및 프로그래밍상의 오류는 무시하십시오. 희망이 도움이됩니다.

+0

감사합니다.이 코드는 SQL Server 도구에서 생성하는 코드와 유사합니다. –

관련 문제