programing

오라클에서 UTF8을 표시하도록 세션을 변경하려면 어떻게 해야 합니까?

muds 2023. 6. 25. 20:38
반응형

오라클에서 UTF8을 표시하도록 세션을 변경하려면 어떻게 해야 합니까?

Oracle의 암호화 구문을 아무리 생각해도 알 수가 없습니다.이것은 Oracle 10g입니다.

내 세션의 NLS_Language가 현재 기본값으로 미국으로 설정되어 있습니다.나는 UTF8 캐릭터를 보여줄 수 있어야 합니다.

다음은 제가 시도한 몇 가지 내용입니다. 모두 잘못된 것입니다.

ALTER SESSION SET NLS_LANGUAGE='UTF8'
ALTER SESSION SET NLS_LANGUAGE='AMERICAN_AMERICA.UTF8'

비밀 지령이 뭐죠?

문자 집합은 로케일의 일부이며, 이는 다음 값에 의해 결정됩니다.NLS_LANG설명서에서 설명하는 것처럼 이것은 운영 체제 변수입니다.

NLS_LANG는 UNIX 플랫폼에서 환경 변수로 설정됩니다. NLS_LANG는 윈도우즈 플랫폼의 레지스트리에 설정되어 있습니다.

이제 사용할 수 있습니다.ALTER SESSIONNLS_LANGUAGE 및 NLS_TERRORITY라는 두 가지 로케일 요소의 값을 변경합니다.하지만, 아아, 캐릭터 세트는 아닙니다.이러한 불일치의 이유는 언어와 영역이 단순히 Oracle이 저장된 데이터를 해석하는 방식에 영향을 미치기 때문입니다. 예를 들어, 큰 숫자를 표시할 때 쉼표나 마침표를 표시할지 여부입니다.문자 집합은 클라이언트 응용 프로그램이 표시된 데이터를 렌더링하는 방법과 관련이 있습니다.이 정보는 시작 시 클라이언트 응용프로그램에서 선택하며, 내부에서 변경할 수 없습니다.

좋아요, http://www.oracle.com/technology/tech/globalization/htdocs/nls_lang%20faq.htm 에 따르면:

NLS_LANG는 ALTER SESSION, NLS_LANGUAGE 및 NLS_TERRORITY에서 변경할 수 없습니다.그러나 NLS_LANGUAGE 및/또는 NLS_TERRORITY는 클라이언트의 환경 또는 레지스트리에서 "독립 실행형" 매개 변수로 설정할 수 없습니다.

Oracle에 로그인하기 전에 다음과 같은 환경 변수를 설정하는 것이 "올바른" 솔루션임이 분명합니다.

export NLS_LANG=AMERICAN_AMERICA.UTF8

Oracle은 유용성을 위해 큰 F를 얻습니다.

따라서 OS에서 '$ sqlplus'를 시작하기 전에 다음을 실행합니다.

  • Windows에서

    set NLS_LANG=아메리칸_아메리카.UTF8

  • 유닉스(Solaris 및 리눅스, Centos 등)

    내보내기 NLS_LANG=AMERICAN_AMERICA.UTF8

또한 '.bash_profile' [시작 스크립트에서]에 env 변수를 설정하는 것이 좋습니다.

이 위치는 일반적으로 다른 ORACLE 환경 변수(ORACLE_SID, ORACLE_HOME)가 설정되는 위치입니다.

just fyi - SQL Developer는 영어가 아닌 UTF8 문자를 잘 표시/처리합니다.

언급URL : https://stackoverflow.com/questions/1998771/in-oracle-how-do-i-change-my-session-to-display-utf8

반응형