아래와 같이 수정하여 테스트 해보시기 바랍니다.
변경전
rd = rows[i].getInputStream(dSet.indexOfColumn("N_BODY"))
int c;
while ((c = is.read()) != -1)
buf.append((char)c);
변경후
rd = rows[i].getInputStream(dSet.indexOfColumn("N_BODY"))
StringBuffer buff2 = new StringBuffer();
byte[] buf = new byte[1024];
while (true) {
int bread = is.read(buf);
if (bread == -1) break;
buff2.append(new String(buf));
}
>* 고객시스템명 : 삼성
>* GAUCE 버전 : 3.5
>* WAS 종류(WebLogic 등등) : WEBLOGIC 8.1
>* DB 종류 : ORACLE
>* 문의 유형(질문/요청/참조) : 질문
>* 내용 :
>BLOB 샘플을 사용해서 LONG 칼럼 처리를 하려고 합니다.
>샘플대로 잘 되는데..문제는 유니코드에서 한글이 깨지고 마네요.
>
>조회시에는 아래와 같이 getCharacterStream을 사용하면 유니코드의 손상없이 정상적으로 되는데..
>
>< 조회시 코드 >
>ResultSet rSet = select.getResultSet();
>if (rSet.next()) {
> Reader rd = rSet.getCharacterStream(1);
> int str = 0;
> while((str = rd.read()) != -1) { sb_text.append((char)str); }
>}
>
>하지만 입력/수정시 가우스데이터셋에서 CharacterStream을 사용할 수 없어고, InputStream을
>사요할 수 밖에 없어서 유니코드 문자열이 손상됩니다.
>
>< 입력/수정시 코드 >
>rd = rows[i].getInputStream(dSet.indexOfColumn("N_BODY")) ;
>
>BLOB의 경우 이미지 같은 부분을 처리하니 상관 없지만, 게시판등 HTML형식의 처리를 위하여
>LONG type 컬럼을 사용했습니다.
>
>처리방안 문의드립니다.
>