Oacle 문자 집합 을 본 후 Oacle 서버 와 클 라 이언 트 문자 집합 을 수정 하 는 절차

1.oracle 서버 단자 문자 집합 조회

select userenv('language') from dual;
server 문자 집합 수정:
데이터 베 이 스 를 RESTRICTED 모드 로 시작 하여 문자 집합 변경:

SQL>conn /as sysdba

SQL>shutdown immediate;  

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;

ALTER DATABASE CHARACTER SET ZHS16GBK  ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

우리 의 문자 집합 을 알려 줍 니 다:새 문자 집합 은 오래된 문자 집합 을 초과 해 야 합 니 다.이 때 우 리 는 초 집합 검 사 를 건 너 뛰 어 변경 할 수 있 습 니 다.

SQL>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;  

SQL>select * from v$nls_parameters; 

변경 완료 여 부 를 다시 확인 합 니 다:

SQL>shutdown immediate;

SQL>startup

SQL>select * from v$nls_parameters;

우 리 는 이 과정 이 이전에 ALTER DATABASE CHARACTER SET 가 조작 한 내부 과정 과 완전히 같다 는 것 을 보 았 다.즉,INTERNALUSE 가 제공 하 는 도움 은 Oracle 데이터 베 이 스 를 부분 집합 과 초 집합 검사 로 돌아 가게 하 는 것 이다.
이 방법 은 어떤 면 에서 쓸모 가 있다.예 를 들 어 테스트 등 이다.제품 환경 에 응용 할 때 모두 조심해 야 한다.의외 의 문제 가 있 을 수 있다.
2.oracle 클 라 이언 트 단자 문자 집합 수정

$echo$NLS_LANG
client 문자 집합 수정:  
 /home/oracle 과/root 사용자 디 렉 터 리 에 있 는.bashprofile 에 export NLS 추가 또는 수정LANG="AMERICAN_AMERICA.UTF 8"문장
 현재 ssh 창 을 닫 습 니 다.
주의:NLSLANG 변 수 는 반드시 정확하게 설정 해 야 합 니 다.그렇지 않 으 면 sqlplus 가 실 효 될 수 있 습 니 다.
3.데이터베이스 문자 집합 을 UTF-8 로 변경
1.DBA 로 로그 인
2.변환 문 실행:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT EXCLUSIVE;

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE OPEN;

ALTER DATABASE NATIONAL CHARACTER SET UTF8;

SHUTDOWN IMMEDIATE;

STARTUP;

주의:큰 대상 이 없 으 면 사용 과정 에서 언어 전환 을 하 는 데 아무런 영향 이 없습니다!
ORA-12717:CANNot ALTER DATABASE NATIONAL CHARACTER SET WHEN NCLOBDATAEXISTS,이 문 제 를 해결 하 는 방법 이 나 올 수 있 습 니 다.
INTERNAL 이용USE 키워드 수정 영역 설정

ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;

좋은 웹페이지 즐겨찾기