강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

오라클 캐릭터 셋 변경
작성자 : M 최고의하루
등록날짜 : 2009.01.12 09:39
3,600
오라클 캐릭터 셋 변경


#################################################################################################################
# 오라클 캐릭터 셋 변경
#################################################################################################################
    update props$ set VALUE$='KO16KSC5601' where name='NLS_CHARACTERSET';
    update props$ set VALUE$='KOREAN' where name='NLS_LANGUAGE';
    update props$ set VALUE$='KOREA' where name='NLS_TERRITORY';
   
    이런것도.. 있군요.
    update props$ set VALUE$='UTF-8' where name='NLS_CHARACTERSET';
    update props$ set VALUE$='KO16MSWIN949' where name='NLS_CHARACTERSET';
   
#################################################################################################################
# 설정 확인
#################################################################################################################
    SELECT NAME,VALUE$ FROM PROPS$ WHERE NAME ='NLS_LANGUAGE' OR NAME ='NLS_TERRITORY' OR NAME ='NLS_CHARACTERSET';
       
        export NLS_LANG=KOREAN_KOREA.KO16KSC5601   <--- 추가


#################################################################################################################
# 캐릭터 셋 변경후에 발생한 에러 코드와 해결방법입니다.
# http://cafe.naver.com/happysharing.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=19
# 아래 내용데로 수행하여 해결하였습니다.
#################################################################################################################

EXP-00008: ORACLE 오류 6552가 발생했습니다
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: 알 수 없는 문자 집합 이름입니다


즉, 아래의 형태의 문제가 발생했을 경우

    Problem description
    ===================
    You receive the following error when (re)compiling or calling a piece of pl/sql:

    ORA-06550: line <num>, column <num>: ....
    or
    ORA-06552: PL/SQL: Compilation unit analysis terminated

    followed by
      
    ORA-06553: PLS-553: character set name is not recognized

이것은 export 시 발생할 수 도 있고, Catproc.sql를 실행하다가..또는 다른 경우에도 발생할 수 있는데

그 원인은 character set 이 섞였기 때문이다.

 

그럼..검증을 해보자 검증하려면 아래의 쿼리를 수행하고 그 결과를 보면 된다.

    select distinct(nls_charset_name(charsetid)) CHARACTERSET,
           decode(type#, 1, decode(charsetform, 1, 'VARCHAR2', 2, 'NVARCHAR2','UNKOWN'),
                         9, decode(charsetform, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'),
                        96, decode(charsetform, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),
                       112, decode(charsetform, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN
       from sys.col$ where charsetform in (1,2) and type# in (1, 9, 96, 112);

결과에서

CHARACTERSET                            TYPES_USED_IN
-----------------------------------------------------
AL16UTF16                               NCHAR
AL16UTF16                               NVARCHAR2
AL16UTF16                               NCLOB
AL32UTF8                                CHAR
AL32UTF8                                VARCHAR2
AL32UTF8                                CLOB


위처럼이 아니라

 

CHARACTERSET                            TYPES_USED_IN
-----------------------------------------------------
AL16UTF16                               NCHAR
AL16UTF16                               NVARCHAR2
AL16UTF16                               NCLOB
US7ASCII                                CHAR
US7ASCII                                VARCHAR2
WE8DEC                                  VARCHAR2
US7ASCII                                CLOB


이런 식으로 하나의 varchar2 에 대해 2개의 characterset 이 나온다면 mix 된 것이다.

 

이 문제에 대한 처리는 아래처럼 하도록 한다.

 

a) INIT.ORA 안에 있는 parallel_server parameter 가 false 거나 아예 세팅되어있지 않은지 확인한다
   SQL>show parameter parallel_server

b) 다음스크립트를 SQLPLUS 에서 "as sysdba"로 수행한다.
   (물론 백업을 해두는 것도 있지 말자!)

   SHUTDOWN IMMEDIATE;
   STARTUP MOUNT;
   ALTER SYSTEM ENABLE RESTRICTED SESSION;
   ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
   ALTER SYSTEM SET AQ_TM_PROCESSES=0;
   ALTER DATABASE OPEN;
   COL VALUE NEW_VALUE CHARSET
   SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
   COL VALUE NEW_VALUE NCHARSET
   SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
   ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
   ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
   SHUTDOWN IMMEDIATE;
   STARTUP;
   -- yes, 2 times startup/shutdown . This is not a typo
   SHUTDOWN IMMEDIATE;
   STARTUP;

c) 만약 parallel_server parameter 를 고쳤다면 다시 원상복구한다.

 

This script doesn't change anything for the data that is already stored, but it
re-enforces database character set to be known in all places where it should be
stored

 

위 스크립트는 이미 저장된 데이터들을 바꾸지는 않는다. 단지 database 의 character set 을 그것이 저장되어지는 모든 장소에 다시 강제적으로 세팅할 뿐이다.
황용연(nseed99)     

 

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3135 인터넷 동영상 저장하기 - 넷트랜스포터 사용 - M 최고의하루 01.12 3707
3134 아이피 쉽게 바꾸기 댓글3 17 미니 04.27 3704
3133 자바 스윙 단축키 설정 2 나야나 05.26 3703
3132 [컴퓨터 키보드, 특수문자 정식 명칭들] M 최고의하루 12.18 3700
3131 버쳐덥을 이용한 동영상 합치기와 H.264로 2pass인코딩 M 최고의하루 01.02 3696
3130 웹프로그래밍 언어별 데이터베이스연결 (ASP편) 13 김영철 01.23 3691
3129 ncftp, ncftpget, ncftpput - 서브디렉토리 전송 13 김영철 01.29 3685
3128 모드버스 simulation 프로그램 2 가이버김 09.14 3682
3127 웹 연동으로 어디서나 가능한 일정관리 프로그램 댓글1 2 춘몽 11.22 3682
3126 GD 라이브러리란 13 김영철 01.14 3674
3125 mysql 한글 깨짐 13 김영철 01.29 3661
3124 ntdll.dll 오류 해결방법 M 최고의하루 01.12 3661
3123 [MS-SQL]동적SQL을 만들때 유의사항-1 99 단국강토 01.08 3657
3122 3D MAX 문고리만들기 10 액션쟁이 01.08 3648
3121 트랙백 13 김영철 01.13 3648
3120 플래시 저장 댓글3 2 비비드바비 04.29 3645
3119 제약조건(1) M 최고의하루 12.20 3641
3118 자판기안의 특수문자 99 단국강토 01.13 3636
3117 URL Helper 3 - 인터넷 주소 분석 2 비비드바비 04.29 3636
3116 [ Sybase ] Sybase 기본 명령어 M 최고의하루 12.18 3635
3115 알씨로 초간단 동영상 슬라이드쇼 만들기 99 단국강토 01.07 3632
3114 제약조건(1) M 최고의하루 12.20 3630
3113 테두리에 리플(Ripple)효과 주기 10 액션쟁이 12.30 3620
3112 CPU, 메인보드, 그래픽, 사운드, 랜 최적 또는 최신 드라이버 자동연결 댓글1 2 춘몽 11.22 3620
3111 [펌] 제14강 - 방명록 만들기 III M 최고의하루 12.20 3618
3110 자바스크립트 폴더배열 가져오기 99 단국강토 01.30 3613
3109 동영상 캡쳐(Capture) 아주 쉽게 하기~ 99 단국강토 01.14 3608
3108 한글 키 입력 안될 때 M 운영자 12.26 3604
3107 업로드시 그림 파일명이 한글일경우 이름 자동 변경하기 13 김영철 01.14 3603
열람중 오라클 캐릭터 셋 변경 M 최고의하루 01.12 3601
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취