728x90
반응형
"[Oracle] 문자셋(characterset) 확인 및 변경"
※ 참고 및 주의사항 (문자셋 변경 전 꼭!! 읽어봐야 함)
- CENTOS7에 ORACLE을 설치함 (아래 내용은 윈도우여도 동일한 것 같다.)
- ORACLE에 SYSDBA로 접속
- 데이터베이스에 데이터가 있는 경우 문자셋 변경은 매우 위험할 수 있다.
1. 문자셋 확인
select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET'; // nls_database_parameters 테이블에서 캐릭터셋만 조회 |
2. 문자셋 변경
SQL> update props$ set value$='KO16MSWIN949' where name='NLS_CHARACTERSET'; // value에 변경하려는 문자셋 입력 SQL> update props$ set value$='KO16MSWIN949' where name='NLS_NCHAR_CHARACTERSET'; // value에 변경하려는 문자셋 입력 SQL> commit; // 변경된 내용 저장 SQL> shutdown immediate // 오라클 서버 종료 (immediate: 현재 처리 중인 것들은 모두 stop) SQL> startup // 서버 시작 |
참고) 한글을 지원하는 문자셋(캐릭터셋)
* KO16KSC5601 완성형 한글- 일반적으로 많이 사용되며 2350자의 한글, 4888자의 한자, 히라카나, 카타카나, 영문 및 각종 기호를 포함하고 있음. (한글바이트: 2byte) * KO16MSWIN949 조합형 한글- 완성형을 포함하여 11172자의 한글을 표현함 (한글바이트: 2byte) * AL32UTF8 Unicode의 CES 중 하나- 11172자의 한글을 지원 (한글바이트: 3byte) |
만약!!!! 오류가 발생한다면??
http://jehna.tistory.com/36 글 참고
출처: https://jehna.tistory.com/34 [Jehna :)]
2. 문자셋 변경하기
- // 뒤에 설명을 달아두어 좀 지저분하지만 나중에도 알아보기 위해 설명을 달아놨다능..
SQL> SHUTDOWN IMMEDIATE; // 접속중인 세션이나 진행 중인 트랜잭션 모두 강제 종료 Database closed. Database dismounted. ORACLE instance shut down. SQL> STARTUP MOUNT; // 마운트 단계까지 오라클 시작 Total System Global Area 536870912 bytes Fixed Size 2097696 bytes Variable Size 230690272 bytes Database Buffers 297795584 bytes Redo Buffers 6287360 bytes Database mounted. SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; // 세션 제한 모드 활성화 (문자셋 변경 중 오류를 막기 위해) System altered. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES = 0; // 문자셋 변경 중 오류를 막기 위해 QueueMonitorCoordinator 비활성화 (자세한 내용은 아래참고) System altered. SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 0; // job queue안의 job을 수행하지 않도록 설정 (문자셋 변경 중 오류를 막기 위해) System altered. SQL> ALTER DATABASE OPEN; // 데이터 베이스 오픈 System altered. SQL> col value new_value charset // SELECT 쿼리 실행 시 결과값과 컬럼명을 같이 보여주라는 의미 SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET'; // NLS_CHARACTERSET 의 문자셋 확인 VALUE -------------------------------------------------------------------------------- KO16MSWIN949 SQL> col value new_value ncharset SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_NCHAR_CHARACTERSET'; //NLS_NCHAR_CHARACTERSET 확인 VALUE -------------------------------------------------------------------------------- AL16UTF16 SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE & CHARSET; old 1: ALTER DATABASE CHARACTER SET INTERNAL_USE & CHARSET Database altered. SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE & NCHARSET; //문자셋 변경시, 데이터 손상 방지를 위한 검사를 건너뛰고 변경(INTERNAL_USE가 검사를 건너뛰겠다는 의미) old 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE & NCHARSET new 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16 Database altered. SQL> SHUTDOWN IMMEDIATE; // 종료 Database closed. Database dismounted. ORACLE instance shut down. SQL> STARTUP; // 시작 ORACLE instance started. Total System Global Area 536870912 bytes Fixed Size 2097696 bytes Variable Size 230690272 bytes Database Buffers 297795584 bytes Redo Buffers 6287360 bytes Database mounted. Database opened SQL> SHUTDOWN IMMEDIATE; // 종료 Database closed. Database dismounted. ORACLE instance shut down. SQL> STARTUP; // 시작 ORACLE instance started. Total System Global Area 536870912 bytes Fixed Size 2097696 bytes Variable Size 230690272 bytes Database Buffers 297795584 bytes Redo Buffers 6287360 bytes Database mounted. Database opened |
출처: https://jehna.tistory.com/36 [Jehna :)]
728x90
반응형
'DB-Oracle' 카테고리의 다른 글
주차, 요일에 해당되는 날짜쿼리 (0) | 2022.12.01 |
---|---|
oracle 비율구하기 쿼리 (0) | 2022.12.01 |
Oracle Exp, IMP 참고 (0) | 2022.12.01 |
ORA-00054: 자원이 사용중이고, NOWAIT가 지정되어 있습니다. Lock해결법 (script kill) (0) | 2022.12.01 |
JOIN에 대한 쉬운 이해 (0) | 2022.12.01 |