1. ko16ksc5601을 ksc5601로 말씀해 주신 것으로 , ko16mswin949를 mswin949로 말씀해 주신것으로 가정하여
정리하면 다음과 같습니다.
1) ko16ksc5601-> utf8
1-1) data migration시 가장 주의해야 하는 사항은 length issue입니다.
ko16ksc5601은 한글의 경우 2byte base이나, utf8의 경우는 3bytes base입니다.
ko16ksc5601에서 "홍길동"이 저장되어 있는 경우 6bytes가 필요하나, utf8의 경우는 9bytes가 필요합니다.
그래서 data migration시 utf8의 table들의 character column은 length issue가 없을지 먼저 확인해 주셔야 합니다
.
1-2) ko16ksc5601에 저장된 모든 data는 utf8에서 인식 가능하여 , data migration시 문제가 될것은 없어 보입니다.
하지만 반대의 경우엔 오류가 발생할 수 있습니다.
1-3) utf8 db에서 NLS_LANG지정시 주의해야 합니다.
즉 NLS_LANG의 characterset부분의 정의는 locale에 맞추어야만 합니다.
국내의 경우엔 반드시 characterset부분이 KO16KSC5601이여야 합니다. UTF8로 지정은 잘못된 설정입니다.
NLS_LANG=American_America.KO16KSC5601
2) ko16ksc5601->ko16mswin949
ko16mswin949은 ko16ksc5601의 superset이라 문제가 될것이 전혀 없습니다.
단 반대의 경우엔 문제가 되는 경우가 있습니다. 이는 ko16ksc5601에서 지원하지 않는 문자집합을 ko16mswin949서 지원하기 ㅤㄸㅒㅤ문입니다.
2. utf8과 ko16ksc5601은 line이 아예 다릅니다.
둘을 포함하는 super character set은 없으며, 단 다국어 지원이나 모든 한글에 대한 지원을 위해선 ko16mswin949사용을 권장합니다.
ko16ksc5601에서 migration되는 경우라면 , ko16mswin949를 사용해 주시기 바랍니다.
======================================================================================================================
제목 : ORA-01461: can bind a LONG value only for insert into a LONG column 글쓴이: 손님(guest) 2006/06/12 16:34:15 조회수:422 줄수:14 |
게시판을 만들었는데 글입력시 숫자나 영문은 정상적으로 입력이 됩니다.. 그런데 한글이나 특수문자를 입력할시에 에러가 발생합니다. 에러내용은 ORA-01461: can bind a LONG value only for insert into a LONG column 이렇게 나오구요,, 여기저기 뒤져보니 jdbc 드라이버가 맞지 않아서 발생하는 에러라해서 이것저것 바꿔봤는데도 안됩니다.. jdk1.4버젼에 오라클 9.2버젼입니다.. 오라클9.2버젼에 맞는 classes12.jar와 ojdbc14.jar도 바꿔봤는데 안되네요,, 방법 아시는분 답변 부탁드립니다. |
제목 : Re: 추측 글쓴이: 허접이(kkuedu1004) 2006/06/14 16:38:10 조회수:182 줄수:21 |
1. 컬럼의 길이와 실제 입력 값의 차이 이건 컬럼에 정한 길이보다 큰 데이터를 입력하고자 할 때 나는 오류입니다. 입력 데이터의 길이를 체크 해 보십시오. 2. 언어셋 가끔 나오는 실수 중에 하나가 바로 한글 관련한 언어셋 때문에 발생되는 길이 입니다. 이것 역시 위의 내용과 틀릴 바 없는데 mswin949에서는 한글 한글자가 length 2입니다만 UTF8이라면 한글 한글자는 length 3 입니다 따라서 "대한민국" 입력을 위해서는 mswin949 - varchar 8 utf8 - varchar 12 |