1. 문제점
Oracle에서 PK컬럼인 NO에 'ABC'와 'ABC '를 다른데이터로 인식하여 두개의 컬럼이 존재하였다.
[PK: NO]1행 : 'ABC'
[PK: NO]2행 : 'ABC '
2. MySQL로 전환시 오류 발생
MySQL에서 collation=euckr에서 Unique 체크시에 Pad Space 방식으로 데이터를 비교한다.
즉, 'ABC'와 'ABC '를 같은 데이터로 인식하여 중복데이터이므로 데이터삽입 오류가 발생한다. (둘 중에 먼저 삽입되는 하나만 들어간다.)
'ABC' => [A][B][C][ ] (공백을 채워서 Unique 비교를 수행)
'ABC ' => [A][B][C][ ]
3. 유일성 체크시 trim을 적용하여 중복된 데이터를 검색한다.
SELECT TRIM(NO), COUNT(*)
FROM TABLE_NAME
GROUP BY TRIM(NO)
HAVING COUNT(*) > 1;
4. 중복 데이터 제거하고 전환한다.
SELECT *
FROM (SELECT NO, ROW_NUMBER() OVER(PARTITION BY TRIM(NO) ORDER BY UPD_DATE) RN
FROM TABLE_NAME)
WHERE RN <= 1;
'MySQL > Oracle to Aurora' 카테고리의 다른 글
Unload > 숫자 10자리 이상 지수형으로 저장 (0) | 2025.01.22 |
---|---|
표준 Json 타입 전환 방안(oracle to mysql) (0) | 2024.12.04 |
loader 로 insert시 행1개가 2개로? @-> ? (0) | 2024.12.04 |
Recursive CTE를 이용한 계층쿼리 (0) | 2024.12.04 |
CHAR vs VARCHAR 공백(blink) 저장 및 비교 (0) | 2024.12.04 |