1. 문자열 깨짐 발견
Table 정보를 import 해야되는 상황이었습니다. 오류없이 import를 모두 마쳤는데, 한자가 아래처럼 깨지는 형상이 발생하게 되었죠.
구글링을 해본 결과 DB Character Set 을 맞춰 준 후 import를 해야 된다는 것을 알게되었습니다.
좌 - 원본DB / 우 - 대상DB
2. DB Character Set 확인
SQL> SELECT * FROM nls_database_parameters WHERE parameter LIKE '%CHARACTERSET%';
좌 - 원본DB / 우 - 대상DB
※ 원본DB는 AL32UTF8 / 대상DB는 KO16MSWIN949 로 서로 다름을 확인 할 수 있습니다.
3. DB Character Set 변경
아래 텍스트 박스 붉은 글씨의 순서대로 명령을 수행합니다. SYSDBA 권한을 이용하여 작업 해야 합니다.
Microsoft Windows [Version 10.0.14393]
C:\>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 월 2월 20 14:18:36 2017 Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn system/패스워드 as sysdba
SQL> UPDATE sys.props$ SET value$='AL32UTF8' WHERE name='NLS_CHARACTERSET'; 1 행이 갱신되었습니다.
SQL> UPDATE sys.props$ SET value$='AL16UTF16' WHERE name='NLS_NCHAR_CHARACTERSET'; 1 행이 갱신되었습니다.
SQL> COMMIT; 커밋이 완료되었습니다.
SQL> Shutdown immediate;
SQL> Startup mount; Total System Global Area 6814535680 bytes
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; 시스템이 변경되었습니다.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 시스템이 변경되었습니다.
SQL> ALTER DATABASE OPEN; 데이타베이스가 변경되었습니다.
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8; 데이타베이스가 변경되었습니다.
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16; 데이타베이스가 변경되었습니다.
SQL> SHUTDOWN IMMEDIATE;
SQL> startup Total System Global Area 6814535680 bytes |
4. DB Character Set 확인
SQL> SELECT * FROM nls_database_parameters WHERE parameter LIKE '%CHARACTERSET%';
※ KO16MSWIN949 -> AL32UTF8 로 잘 변경되었습니다.
5. Table 확인
인코딩을 변경하였다고 기존에 깨진 값이 정상으로 돌아오지 않았습니다.
테이블을 DROP 한 뒤 다시 import 한 뒤 정상 출력을 확인 한 화면입니다.
감사합니다.
궁금한 것, 잘안되는 것은 문의 남겨주시면 성실히 답변해 드리겠습니다.
'DataBase > Oracle' 카테고리의 다른 글
[문제해결] ora-12638 : 신용검색에 실패했습니다 (0) | 2017.03.03 |
---|---|
오라클 계정 생성 및 삭제 (2) | 2017.02.21 |
오라클 11gR2 설치 (0) | 2017.02.20 |