2011-07-31 01:30:23
SQL 4 Oracle 오라클용 sql 실무
▒ 오라클 중복데이터 삭제하기 ROWID의 오해
먼저 들어온 중복 데이터 삭제하기
DELETE FROM TABLE_NAME A
WHERE ROWID < (SELECT MAX(ROWID)
FROM TABLE_NAME B
WHERE A.COL = B.COL
위 SQL에서 오류사항 2가지
1. 오라클의 ROWID는 순차적으로 insert 된 DATA의 순서란 뜻이 아니다.
말그대로 물리적인 ROWID에 DATA INSERT시 비어있는 ROW에 DATA가 들어간다
그래서 ROWID로 단순 최초 최후의 판단조건으로 부적절 하다.
2. 중복 데이터란 unique 키가 없는 상태에서 키값이 중복이란 것이지 전체 데이터가 중복이란 뜻이 아닐경우
최초 최후의 값을 판단하지 않으면 낭패를 볼 수도 있다.

'SQL4Oracle' 카테고리의 다른 글
| 상수값 있는 OUT JOIN 오류표현 (0) | 2023.03.10 |
|---|---|
| LEFT JOIN (0) | 2023.03.10 |
| 중복 데이터 삭제하기 중복제거 (0) | 2023.03.03 |
| 일정 횟수(7회) 이상 존재하는 데이타 추출 (0) | 2023.03.03 |
| SQL loader 대량데이터 로딩포맷 (0) | 2023.03.03 |