티스토리 뷰

Developer

[Oracle] Character set 변경.

rocksea 2014. 2. 11. 18:11

Oracle Character set 변경.

Oracle 초기설치시 한글 UTF8과 맞지 않아 ???로 바이트가 깨지는 현상이 발생하여 확인 중 Oracle 내의 인코딩 수정으로

쉽게 해결이 가능하였다.


Step 1. sqlplus ( client )에서의 인코딩  환경 변수 설정

설정을 안하게 될 경우 서버에는 정상적으로 insert되지만 출력시 ??? 로 나오는 현상이 발생한다.

$ export NLS_LANG=KOREAN_KOREA.UTF8


Step 2. DB 서버 에서의 인코딩  환경 변수 설정

현재 설정된 인코딩 확인.

SQL> select * from nls_database_parameters where parameter like '%CHARACTERSET%';

PARAMETER                      VALUE

------------------------------ ----------------------------------------

NLS_CHARACTERSET               WE8MSWIN1252

NLS_NCHAR_CHARACTERSET         AL16UTF16


SQL> select VALUE$ from sys.props$ where name='NLS_LANGUAGE';

VALUE$

--------------------------------------------------------------------------------

AMERICAN


DB서버를 UTF-8으로 인코딩 설정 후 재기동 까지 해주면 끝.

SQL> update sys.props$ set value$='UTF8' where name='NLS_CHARACTERSET';

1 row updated.


SQL> update sys.props$ set value$='UTF8' where name='NLS_NCHAR_CHARACTERSET';

1 row updated.

SQL> update sys.props$ set value$='KOREAN_KOREA.UTF8' where name='NLS_LANGUAGE';

1 row updated.


SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.


SQL> startup;

ORACLE instance started.


Total System Global Area  208805888 bytes

Fixed Size                  2142896 bytes

Variable Size             150998352 bytes

Database Buffers           50331648 bytes

Redo Buffers                5332992 bytes

Database mounted.

Database opened.


결과화면

SQL> select ID from  ACC;

ID

--------------------------------------------------------------------------------

락시


by rocksea.

'Developer' 카테고리의 다른 글

[linux] cpu affinity.  (0) 2014.02.19
[i/o] Level Trigger, Edge Trigger  (0) 2014.02.13
[ORACLE] user 생성 및 권한 부여.  (0) 2014.02.07
[ORACLE] ORA-01078, LRM-00109 Error.  (0) 2014.02.07
[thead] multi-thread programming for thread-safe  (0) 2014.02.06
댓글