데이터베이스의 캐릭터셋 설정 확인 (설정 값이 한글이 지원이 안되는 캐릭터셋으로 되어 있는 경우에는 한글 입출력이 불가능하다.)
SQL> select * from nls_database_parameters;
PARAMETER VALUE
------------------------------ ----------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 11.1.0.6.0
캐릭터셋을 확인하고 (AL32UTF8)
리눅스 쉘에서,
$ export NLS_LANG=KOREAN_KOREA.AL32UTF8
$ sqlplus / as sysdba
SQL*Plus: Release 11.1.0.6.0 - Production on 월 11월 10 17:31:57 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
다음에 접속됨:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
SQL> select '한글' from dual;
'한글'
------
한글
SQL>
sqlplus 인터페이스도 한글로 출력되고, 데이터도 한글로 잘 출력된다.
NLS_LANG 파마리터 설정을 해제하면
$ unset NLS_LANG
$ sqlplus / as sysdba
SQL*Plus: Release 11.1.0.6.0 - Production on Mon Nov 10 17:33:49 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select '한글' from dual;
'???????'
---------------------
???????
SQL>
export NLS_LANG=KOREAN_KOREA.KO16MSWIN949