2013. 12. 7. 17:27ㆍWEB/JSP(JAVA)
CLOB 는 Oracle에 존재하는 필드타입이다.
함수가 아님...
오라클버전에 따라 다루는 방법도 다르기 때문에 검색이 필요하다.
1. 일단 DB에 저장하는 방법은 CLOB 데이터필드 컬럼을 empty_clob() 로 넣어준다.
EX )
INSERT INTO CLOBTABLE ( CLOB_COLUMN) VALUES ( empty_clob() ) ;
2. select clob_column from table_name where = 조건 for update 로 락을 걸어준다.
3. con.setAutoCommit(false) 데이터 삽입을 처리하기위해 설정해주고 받아온 column을 ResultSet 에 rs.getClob()로 통한 받아와 getCharacterOutputStream 통해 writer 를 해준다
ex) rs= pstmt.executeQuery(sql) if (rs.next()){ Clob clob = rs.getClob(clob_column); BufferedWriter bw = ((CLOB)clob).getCharacter OutputStream(); bw.write(값) bw.close();
4. 마지막에 다시 rs.close() 등을 해주고 setAutoCommit(true) 해준다.
----------------------------------------------------------------------------------------------------------------------
CLOB 데이터를 읽어오기위해서는
1. select clob_column from table_name where =조건 이걸 Resultset 에담아줌
EX )
StringBuffer sb =new StringBuffer();
Reader rd = rs.getCharacterStream("clob_column");
char [] buff =new char[1024];
int i;
while (i = rd.read(buff.0.1024)) ! = -1) {
sb.append(buff,0, i ));
}
2. 이런식으로 CLOB 데이터를 불러오기 위해서 rs.getCharacterStream("clob_column") 담아줘서 스트링버퍼에 담아 불러와야한다.
TIP) ibatis 를 통해 Oracle CLBO Stirng 으로 가저올려면 간단하다
CLOB clob =(CLOB) rs.get("clob_column");
Reader rd =clob.getCharacterStream();
StringReader(rs.getString("clob_column")));
StringBuffer sb = new StringBuffer();
char[] buf = new char[1024];
int readcount;
while ((readcount = rd.read(buf, 0, 1024)) != -1) {
sb.append(buf, 0, readcount);
}
rd.close();
}
// retrun sb.toString();
끝~
'WEB > JSP(JAVA)' 카테고리의 다른 글
[자바]JAVA null 체크 + java.lang.NullPointerException (17) | 2014.01.13 |
---|---|
이클립스 svn Compare with Each Other (0) | 2014.01.06 |
Eclipse SVN 날짜, 유저 설정 (1) | 2013.12.05 |
[JSP]jsp include (1) | 2013.09.27 |
jsp session 세션 (2) | 2013.09.27 |