JAVA

Oracle DB의 LONG형 타입 받아오기

햄볶는뚱땡이 2009. 9. 9. 10:52

과학원 프로젝트시에, 특이하게도  DB  에 LONG형  Data type 이 들어가 있었다.
java 에서  long 타입을 한번도 받아온 적이 없었기 때문에 당황할수 밖에 없었다.
Antop의 말로는 CLOB 과 같이 LONG형도 데이터 추출하는 다른 함수가 있다고 해서 열심히 네이년에게 물어봤다.

역시나. 네이년은 모르는게 없었다....


DB : Oracle 10g  


 /**
     * readClobData() 인기자료 DB의 LONG 타입형을 String 으로 변환
     * @param reader 인기자료의 Long 타입 객체
     * @return String StringBuffer를 이용해 String 형태로 반환
     * @exception IOException 입출력 에외처리
     */
 // readLongClobType Reading

 public static String readClobData(Reader reader) throws IOException {
  StringBuffer data = new StringBuffer();
  char[] buf = new char[1024];
  int cnt = 0;
  if (null != reader) {
   while ((cnt = reader.read(buf)) != -1) {
    data.append(buf, 0, cnt);
   }
  }
  return data.toString();
 }

--중략 (쿼리날려서 값 받아오겠찌..)--
    
/**
       *  String -> InputStream 으로 형변환
       *  문자형 타입은 UTF-8 로 변환
       */
      String strtmp = readClobData(rslt.getCharacterStream("xml")); //여기서 호출
     
     //Document 의 builder.parse(type) 여기의 type에 들어갈수 있도록 (5개였는데... )
       file, InputStream, InputSource, String -이클립스 에서 확인하세용
     inputStream 형태로 변환과 동시에 문자형 타입을 UTF-8 로 변환

      InputStream is = new ByteArrayInputStream(strtmp.getBytes("utf-8")); 
     
      /** XML 데이터 파싱 이 이루어 지겠죠.... */

아래 파일은 이번 환경전문의 xml 파싱과정임.