db/Oracle 2014. 6. 27. 12:38

[ERROR] ORA-06552, ORA-06553

원인 : DB 생성할때 언어설정을 잘못해서 NLS_LANGUAGE 값을 따로 업데이트 했더니 꼬여서 발생하는 문제


상황 : PL/SQL Developer 에서는 별 문제 없었는데, 백업 문제로 DBMS_METADATA.GET_DDL 함수에서 에러가 발생


ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: 알 수 없는 문자 집합 이름입니다


확인 :



을 실행하면 아래와 같이 VARCHAR2 의 CHARACTER_SET 이 중복으로 나오면 꼬인거라고 생각하면 됩니다.


CHARACTERSET                            TYPES_USED_IN
-----------------------------------------------------

US7ASCII                                VARCHAR2

AL16UTF16                              VARCHAR2


해결 : sqlplus "/as sysdba" 로 접속

1. sql> shoutdown immediate; -- 데이터베이스 종료

2. sql> startup mount; -- 데이터 베이스 인스턴스 시작

3. sql> alter system enable restricted session; -- 제한된 세션 사용

4. sql> alter system set job_queue_processes=0; -- JOB을 생성할수 있는 프로세스 숫자 제한

5. sql> alter system set aq_tm_processes=0; -- 정확히 뭐하는건지 모름 

6. sql> alter database open;

7. sql> col value new_value charset 

8. sql> select value from nls_database_parameters where parameter='NLS_CHARACTERSET';    -- 캐릭터셋 을 변수에 저장

9. sql> col value new_value ncharset

10. sql> select value from nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET'; -- 네셔널 캐릭터셋 도 저장

11. sql> alter database character set internal_use &charset; -- 캐릭터셋 적용

12. sql> alter database national character set interanl_use &ncharset -- 네셔널 캐릭터셋 적용

13. sql> shoutdown immediate; -- 데이터베이스 종료

14. sql> startup; -- 데이터베이스 시작

'db > Oracle' 카테고리의 다른 글

[TIP] 오라클 패스워드 대소문자 구분 해제  (0) 2014.07.17