2017-12-01 2 views
0

오라클 DB에 중국어 문자를 붙여 넣습니다내가 오라클 DB에 중국어 문자를 붙여하려고

NLS_NCHAR_CHARACTERSET = 'UTF8' 
NLS_LANGUAGE = 'RUSSIAN' 
NLS_TERRITORY = 'RUSSIA' 
NLS_CURRENCY = '?.' 
NLS_ISO_CURRENCY = 'RUSSIA' 
NLS_NUMERIC_CHARACTERS = '','' 
NLS_CHARACTERSET = 'CL8MSWIN1251' 
NLS_CALENDAR = 'GREGORIAN' 
NLS_DATE_FORMAT = 'DD.MM.RR' 
NLS_DATE_LANGUAGE = 'RUSSIAN' 
NLS_SORT = 'RUSSIAN' 
NLS_TIME_FORMAT = 'HH24:MI:SSXFF' 
NLS_TIMESTAMP_FORMAT = 'DD.MM.RR HH24:MI:SSXFF' 
NLS_TIME_TZ_FORMAT = 'HH24:MI:SSXFF TZR' 
NLS_TIMESTAMP_TZ_FORMAT = 'DD.MM.RR HH24:MI:SSXFF TZR' 
NLS_DUAL_CURRENCY = '?.' 
NLS_COMP = 'BINARY' 
NLS_LENGTH_SEMANTICS = 'BYTE' 
NLS_NCHAR_CONV_EXCP = 'FALSE' 
NLS_RDBMS_VERSION = '11.2.0.4.0' 

검색어 : 결과 필드가 포함에서

update my_table set message = '© § english пепелац 百' where id = 252615 

메시지 필드 유형이 NVARCHAR2

입니다 : '© § 영어 пепелац?'. 아니 중국 기호입니다. 나는 손으로 '百'기호를 붙여 넣으면

그러나 (PL/SQL 개발자 편집 열기 MY_TABLE, 붙여 넣기 값은 세포와 커밋합니다), 작동, DB 반환 : '© 영어 пепелац § 百'

NLS_LANG를 ".zhs16gbk", ".AL32UTF8", "SIMPLIFIED CHINESE_CHINA.ZHS16GBK"및 기타 ...로 설정하려고 시도했지만 도움이되지 않습니다.

PL/SQL Developer 10.0.5.1710; Windows 7 (64 비트) 6.1 빌드 7601 (서비스 팩 1); 오라클 클라이언트 11.2.0;

도움말 ヽ (° □ °) ノ

+0

어떤 도구/드라이버를 사용하십니까? –

+0

DBMS에 "百 '기호를 손으로 붙여 넣으면 무슨 뜻입니까? –

+0

PL/SQL Developer에서 편집을 위해 my_table을 열고 셀에 값을 붙여넣고 커밋하십시오. – Vladimir

답변

1

은 (언어와 지역 단지 .AL32UTF8을 위해, 당신에게 달려있다)

하는 그런 PL/SQL Developer에서 구성하는 이동 RUSSIAN_RUSSIA.AL32UTF8NLS_LANG 값을 설정 -> 환경 설정 -> 파일 -> 형식 -> 인코딩

하고 "항상 ANSI"또는 "자동 감지"는 다음 PL/SQL 개발자는 ANSI 코드 페이지에서 SQL 스크립트를 저장합니다 사용하는 경우 "항상 UTF8"

을 설정, 대부분 중국어 문자를 지원하지 않는 CP1252 (https://www.microsoft.com/resources/msdn/goglobal/default.mspx 참조)입니다.

참고 : UTF-8은 오라클 문자 집합 AL32UTF8입니다. Oracle 문자 집합 UTF8CESU-8을 의미합니다.

클라이언트 문자 집합이 UTF-8 인 반면 데이터베이스 (국가) 문자 집합이 CESU-8인데 상관없이 Oracle 드라이버는 자동 변환을 수행합니다. 이것이 NLS_LANG 설정의 주된 목적입니다.

관련 문제