Oracle 문자 집합 보기 및 수정
11577 단어 Oacle데이터 뱅 크oracle 인 코딩ZHS16GBK
다음으로 전송: Oracle 인 코딩
1. Oracle 문자 집합 이 무엇 입 니까?
Oracle , , 。ORACLE , , 。 , , , , , , , 。
Oracle NLS_LANG 。
: NLS_LANG = language_territory.charset
( 、 ), NLS 。
:
Language: ,
Territory: ,
Charset: 。
:AMERICAN _ AMERICA. ZHS16GBK
NLS_LANG , 。
, 。
2. 문자 집합 에 관 한 지식:
2.1 문자 집합
, , 。Oracle US7ASCII。
Oracle :
<Language><bit size><encoding>
: < >< >< >
: ZHS16GBK GBK 、16 ( )
2.2 문자 인 코딩 방안
2.2.1 단일 바이트 인 코딩
(1) 7 , 128 , US7ASCII
(2) 8 , 256 ,
:WE8ISO8859P1( 、8 、ISO 8859P1 )
2.2.2 다 중 바이트 인 코딩
(1)
, , , 、 、
:AL32UTF8( AL ALL, )、zhs16cgb231280
(2)
, oracle AF16UTF16,
2.2.3 유 니 코드 인 코딩
Unicode , Unicode 。UTF-16 unicode 16 , , 2 unicode ,AF16UTF16 UTF-16 。
UTF-8 unicode 8 , , 1、2、3 unicode ,AL32UTF8,UTF8、UTFE UTF-8
2.3 문자 집합 슈퍼
( A) ( B) , , A B , B A 。
Oracle8i oracle9i - (subset-superset pairs), :WE8ISO8859P1 WE8MSWIN1252 。 US7ASCII Oracle , US7ASCII , WE8ISO8859P1、ZHS16CGB231280、ZHS16GBK US7ASCII 。
2.4 데이터베이스 문자 집합 (oracle 서버 단자 문자 집합)
, 。 , (CHARACTER SET) (NATIONAL CHARACTER SET)。
2.4.1 문자 집합
(1) CHAR, VARCHAR2, CLOB, LONG
(2) 、 PL/SQL
(3) SQL PL/SQL
2.4.2 국가 문자 집합:
(1) NCHAR, NVARCHAR2, NCLOB
(2) oracle , oracle , NCHAR , 。 oracle9i , unicode AF16UTF16 UTF8 , AF16UTF16
2.4.3 문자 집합 파라미터 조회
nls_database_parameters、props$、v$nls_parameters
NLS_CHARACTERSET ,NLS_NCHAR_CHARACTERSET
2.4.4 데이터베이스 문자 집합 수정
, 。 2 。
1. , , , 。
2. ALTER DATABASE CHARACTER SET , , , UTF8 US7ASCII , ALTER DATABASE CHARACTER SET UTF8。
2.5 클 라 이언 트 문자 집합 (NLS LANG 매개 변수)
2.5.1 클 라 이언 트 문자 집합 의미
, , , sqlplus,exp/imp 。 NLS_LANG 。
2.5.2 NLS_LANG 매개 변수 형식
NLS_LANG=<language>_<territory>.<client character set>
Language: oracle , ,
Territory: 、 、
Client character set:
:NLS_LANG=AMERICAN_AMERICA.US7ASCII
AMERICAN ,AMERICA ,US7ASCII
2.5.3 클 라 이언 트 문자 집합 설정 방법
1)UNIX
$NLS_LANG=“simplified chinese”_china.zhs16gbk
$export NLS_LANG
oracle profile
2)Windows
Regedit.exe ---》 HKEY_LOCAL_MACHINE ---》SOFTWARE ---》 ORACLE-HOME
2.5.4 NLS 파라미터 조회
Oracle NLS , NLS_LANGUAGE,NLS_DATE_FORMAT,NLS_CALENDER , v$ 。
NLS_DATABASE_PARAMETERS: 데이터베이스 의 현재 NLS 매개 변수 값 을 표시 합 니 다. 데이터베이스 문자 집합 값 을 포함 하여 NLSSESSION_PARAMETERS: NLS 표시LANG 가 설정 한 매개 변수 나 alter session 을 통 해 변 경 된 매개 변수 값 (NLS LANG 가 설정 한 클 라 이언 트 문자 집합 은 포함 되 지 않 음) NLSINSTANCE_PARAMETE: 인자 파일 init. ora 가 정의 하 는 인자 V $NLS 표시PARAMETERS: 데이터베이스 현재 NLS 매개 변수 값 표시
2.5.5 NLS 파라미터 수정
NLS
(1)
(2) NLS_LANG
(3) ALTER SESSION , oracle
(4) SQL
NLS :Sql function > alter session > > >
3. EXP / IMP 와 문자 집합
3.1 EXP/IMP
Export Import Oracle 。Export Oracle , Import Oracle , exp/imp , , , 。
EXP
____________ _________________ _____________
|imp |<-| NLS_LANG|<-| |
------------ ----------------- -------------
IMP
____________ _________________ _____________
|imp |->| NLS_LANG|->| |
------------ ----------------- -------------
(1)
(2)Export ( NLS_LANG )
(3)Import ( NLS_LANG )
(4)
3.2 내 보 내기 전환 과정
Export , Export , , Export ID 。 。
: ZHS16GBK, Export US7ASCII, ZHS16GBK 16 , US7ASCII 7 , , US7ASCII , “?? ” , Dmp 。
, Export
3.3 가 져 온 전환 과정
(1)
,
(2) session , Session NLS_LANG
(3)IMP
ID, NLS_LANG
(4) Session , , , Session 。 ,
: Session , ,Import 。
: Session 。
4. 데이터베이스 문자 집합 보기
세 가지 측면 과 관련 된 문자 집합, 1. Oacle server 엔 드 의 문자 집합;2. Oacle client 엔 드 의 문자 집합;3. dmp 파일 의 문자 집합.
데 이 터 를 가 져 올 때 이 세 문자 집합 이 일치 해 야 정확하게 가 져 올 수 있 습 니 다.
4.1 Oacle server 엔 드 문자 집합 조회
Oacle server 엔 드 의 문자 집합 을 찾 을 수 있 는 여러 가지 방법 이 있 습 니 다. 비교적 직관 적 인 조회 방법 은 다음 과 같 습 니 다.
SQL> select userenv('language') from dual;
USERENV('LANGUAGE') ----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK SQL>select userenv(‘language’) from dual;
AMERICAN _ AMERICA. ZHS16GBK
4.2 dmp 파일 의 문자 집합 을 어떻게 조회 합 니까?
oracle exp dmp ,dmp 2 3 dmp 。 dmp , M M, UltraEdit (16 ), 2 3 , 0354, SQL :
SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
ZHS16GBK
dmp , 2G ( ), , ( unix ):
4. 567914. 그리고 상기 SQL 로 도 해당 하 는 문자 집합 을 얻 을 수 있 습 니 다.
4.3 Oacle client 엔 드 문자 집합 조회
windows , OracleHome NLS_LANG。 dos ,
: set nls_lang=AMERICAN_AMERICA.ZHS16GBK
。
unix , NLS_LANG。
$echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
server client , server 。
보충:
(1). 데이터베이스 서버 문자 집합
select * from nls_database_parameters
props$, 。
(2). 클 라 이언 트 문자 집합 환경
select * from nls_instance_parameters
v$parameter, , ,
(3). 세 션 문자 집합 환경
select * from nls_session_parameters
v$nls_parameters, , alter session , , nls_instance_parameters 。
(4). 클 라 이언 트 의 문자 집합 은 서버 와 일치 해 야 데이터베이스 의 비 Ascii 문 자 를 정확하게 표시 할 수 있 습 니 다.
여러 설정 이 존재 할 때 NLS 역할 우선 순위: Sql function > alter session > 환경 변수 나 레 지 스 트 > 매개 변수 파일 > 데이터베이스 기본 매개 변수
문자 집합 은 일치 해 야 하지만 언어 설정 은 다 를 수 있 습 니 다. 언어 설정 은 영어 로 하 는 것 을 권장 합 니 다.문자 집합 이 zhs16gbk 이면 nlslang 은 American 일 수 있 습 니 다.America.zhs16gbk。
5. Oacle 문자 집합 수정
, 。 , 。 server , , , 。 , , oracle server 。 , ZHS16GBK ZHS16CGB231280 , 。
3 2 。
1. , , 。
2. ALTER DATABASE CHARACTER SET , , , UTF8 US7ASCII , ALTER DATABASE CHARACTER SET UTF8。
5.1 서버 엔 드 문자 집합 수정 (사용 권장 하지 않 음)
1.
SQL>SHUTDOWN IMMEDIATE
2. Mount
SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
--
SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;
SQL>ALTER DATABASE NATIONAL CHARACTER SET ZHS16GBK;
-- , INTERNAL_USE ,
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;
SQL>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL32UTF8;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP
: , ,( ORACLE , start) 。
‘ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET when NCLOB data exists’ ,
1. INTERNAL_USE ,
2. re-create, re-create , internal_use
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT EXCLUSIVE;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
SQL>SHUTDOWN immediate;
SQL>startup;
,National charset
5.2 dmp 파일 문자 집합 수정
,dmp 2 3 , dmp 2 3 ‘ ’ oracle 。 , , , US7ASCII,WE8ISO8859P1,ZHS16CGB231280,ZHS16GBK 。 dmp , 。
, UltraEdit dmp 2 3 。
dmp ZHS16GBK, SQL 16 : SQL> select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;
0354
dmp 2、3 0354 。
dmp , ue , 。
5.3 클 라 이언 트 문자 집합 설정 방법
1)UNIX
$NLS_LANG=“simplified chinese”_china.zhs16gbk
$export NLS_LANG
oracle profile
2)Windows
Regedit.exe ---》 HKEY_LOCAL_MACHINE ---》SOFTWARE ---》 ORACLE-HOME
:
set nls_lang=AMERICAN_AMERICA.ZHS16GBK
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
activemq 5.5 의 입문 은 설치, 시작, 데이터베이스 지속 화 를 포함한다Apache ActiveMQ 5.5.0 은 주로 유지보수 버 전 으로 130 개가 넘 는 문 제 를 복 구 했 으 며 대부분 bug 와 개선 이 었 다. Improved performance for offline d...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.