Oracle 중복 제거 데이터의 ROWID에 대한 오해
SQL4 오라클
2011-07-31 01:30:23
SQL 4 Oracle Oracle SQL 실습
▒ Oracle의 중복제거에서 ROWID에 대한 오해
먼저 발생하는 중복 데이터 제거
TABLE_NAME A에서 삭제
WHERE ROWID < (SELECT MAX(ROWID)
table_NAME B에서
여기서 A.COL = B.COL
위의 SQL에는 두 가지 오류가 있습니다.
1. Oracle의 ROWID는 데이터가 순차적으로 삽입되는 순서를 나타내지 않습니다.
즉, INSERT DATA가 물리적 ROWID에 들어가면 DATA는 빈 ROW에 들어갑니다.
따라서 ROWID는 단순한 최초이자 최후의 판단 조건으로 적합하지 않다.
2. 중복 데이터는 고유 키 없이 키 값이 반복되는 것을 의미하지만 전체 데이터가 반복되는 것은 아닙니다.
첫 번째 값과 마지막 값을 판단하지 않으면 실망할 수 있습니다.