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 ..;