보고 있 는 ORACLE 튜 토리 얼 은 Oracle 8i 문자 집합 난 코드 문제 분석 및 해결 방법 입 니 다.질문 설명 SQL Plus WorkSheet 은 창 그래 픽 인터페이스의 SQL 구문 편집기 로 창 인터페이스 를 좋아 하고 문자 인터페이스 를 좋아 하지 않 는 사용자 에 게 SQL/PLUS 에 큰 인 기 를 끌 었 다.하지만 Oracle 에서 8i 이후 Oracle 을 설치 하면 8i 에서 선택 한 것 은 영어 와 다른 문자 집합 입 니 다.우리 중국 에 서 는 보통 간 체 중국어 문자 집합(ZHS16GBK)을 선택 하여 설치 에 성공 한 후에 SQL 을 실행 합 니 다. Plus WorkSheet 프로그램 에 서 는 모든 중국어 디 스 플레이 와 조회 결과 가 난 장 판 인 경우 가 발생 합 니 다.2.문제 분석 에서 처음에 이 문제 가 발생 했 는데 먼저 설치 할 때 문자 집합 설정 에 문제 가 있다 는 것 을 의심 했다.즉,정확 한 간 체 중국어 문자 집합 을 설정 하지 않 았 다 는 것 이다.먼저 데이터베이스 문자 집합 을 검사 하고 SQL/PLUS 에서 다음 SQL 문 구 를 실행 하 며 연 결 된 데이터베이스 문자 집합 을 검사 합 니 다.조회 결과 데이터베이스 가 설치 되 었 을 때 선택 한 문자 집합 은 간 체 중국어 ZHS16GBK 로 설치 할 때 문자 집합 설정 이 정확 하 다 는 것 을 알 수 있 습 니 다.두 번 째 단 계 는 사용자 클 라 이언 트 문자 집합 문 제 를 의심 하고 클 라 이언 트 레 지 스 트 를 검사 하 며 레 지 스 트 편집 프로그램(RegEdit)을 엽 니 다.HKEY 에 있 습 니 다.LOCAL_MACHINE/SOFTWARE/ORACLE/NLS_LANG,Oracle 클 라 이언 트 문자 집합 이 AMERICAN 인 것 을 발 견 했 습 니 다.AMERICA.ZHS16GBK,설정 도 정확 하여 클 라 이언 트 문자 집합 설정 이 잘못된 문 제 를 제거 할 수 있 습 니 다.또한 같은 클 라 이언 트 기기 에서 SQL/PLUS 의 조회 문자 집합 이 완전히 정상 적 인 것 도 문자 집합 설정 문제 가 아니 라 시스템 프로그램 SQL/Plus 라 는 것 을 의미한다. 질문Oracle 8i 이전 버 전에 서 이런 상황 이 발생 한 적 이 없다.이것 은 Oracle 버 전과 관련 이 있어 야 한다.우 리 는 Oracle 을 알 고 있다. 8i 와 그 앞의 버 전의 현저 한 차이 점 은 바로 대부분의 Oracle 시스템 프로그램 이다.현 재 는 모두 자바 구동 을 사용 하고 있 는데 사실은 이것 이 바로 문자 집합 코드 문제 가 발생 하 는 근본 이다.SQL*Plus 와 같은 자바 드라이버 가 아 닌 시스템 매개 변수 NLS 가 있 습 니 다.LANG,이 매개 변 수 는 UNIX 시스템 에서 환경 변수 에 설정 되 어 있 으 며,Windows 운영 체제 에서 레 지 스 트 에 설정 되 어 있 으 며,이 매개 변 수 는 클 라 이언 트 응용 프로그램의 문자 집합 을 결정 합 니 다.자바 기반 프로그램,예 를 들 어 현재 만 나 고 있 는 SQL*PLus Worksheet,NLS_LANG 매개 변 수 는 이러한 프로그램 에 아무런 작용 도 하지 않 습 니 다.3.해결 방안 이 문제 가 발생 하 는 원인 을 찾 은 후에 이 문 제 를 어떻게 해결 하 는 지 토론 합 니 다.Oracle Enterprise 관리자 의 모든 도 구 는 dbappscfg.properties 라 는 설정 파일 이 있 습 니 다.이 파일 을 수정 하면 상기 문 제 를 해결 할 수 있 습 니 다.이 파일 의 위 치 는$ORACLE 입 니 다.HOME\sysman\\config 디 렉 터 리 에서 모든 텍스트 편집기 로 이 파일 을 엽 니 다.이 파일 에서 이 항목 을 찾 으 면 주석 자\#를 제거 하고 SQLPLUS 로 수정 합 니 다.NLS_LANG=AMERICAN_AMERICA.ZHS16GBK。 Windows 운영 체제 에 대해 서 는 파일 에서 찾 을 수 있 도록 수정 이 필요 합 니 다.\# SQLPLUS_SYSTEMROOT=c:\\WINNT 40,주석 부 호 를 제거 하고 당신 이 있 는 기계 의 운영 체제 홈 디 렉 터 리 로 수정 합 니 다.운영 체제 의 홈 디 렉 터 리 가 D 디스크 의 Winnt 아래 에 있 으 면 이 를 수정 합 니 다. SQLPLUS_SYSTEMROOT=d:\\WINNT。 다음 변경 사항 은 윈도 우즈 운영 체제 에 만 적용 되 며 유 닉 스 운영 체제 에는 필요 하지 않 습 니 다.Windows 운영 체제 에서 이 항목 을 수정 하지 않 으 면 Oracle 에서 Enterprise Manager 에서 시스템 을 연결 할 때 다음 과 같은 오 류 를 알려 줍 니 다.또는 수정 이 완료 되면 파일 을 저장 하고 편집 을 종료 합 니 다.SQL 다시 연결 PLUS Worksheet,문자 집합 오류 문제 가 해결 되 었 습 니 다.정확 한 간 체 중국어 문자 집합 을 표시 합 니 다.