어느 가을날의 전환점

ORACLE|ORA-29275: 부분 다중 바이트 문자 Error(partial multibyte character) 본문

Database/Oracle

ORACLE|ORA-29275: 부분 다중 바이트 문자 Error(partial multibyte character)

어느가을빛 2014. 10. 21. 14:05

[오류]

ORA-29275: 부분 다중 바이트 문자 Error

ORA-29275: partial multibyte character


[원인]

오라클 서버의 CHARACTERSET 과 클라이언트의 CHARACTERSET 값이 다를 경우 발생

SQL> select parameter, value from nls_database_parameters where parameter like '%CHARACTERSET%'


[해결방안]

1) 컬럼의 CharacterSet 변환

CONVERT(COLUMN NAME,'NLS_CHARACTERSET','NLS_CHARACTERSET');


1. 서버 Character Set 변경 : 불가능


2. 클라이언트 Character Set 변경 : 

    regedt32 실행 후, NLS_LANG값을 찾아서, 서버 Character Set 과 동일하게 셋팅한다.  


3. 저장된 테이블 데이터 수정 :

    조회할 때 문제라면 프로그램 코딩에서 보통 2BYTE 문자가 포함된 경우기 때문에 2byte 문자 포함이 

    의심되는 필드에 to_single_byte 함수를 사용하면 응용프로그램은 정상적으로 작동된다.

 

   문제가 되는 행을 찾아서 값을 변경해 준다.

          SQL> select to_single_byte(field_name) from table_name;

          update table_name set field_name = to_single_byte(field_name) where ..; 

Comments