해당강좌는 예전에 kkaok님이 강좌로 만들었던 것입니다.
현재는 그 링크가 사라져서 kkaok님의 홈페이지만을 링크로 해두었습니다.
좋은 강의와 TIP이 많은 곳이니 한번 방문해보시기 바랍니다^^
출처 : http://www.kkaok.pe.kr/
현재는 그 링크가 사라져서 kkaok님의 홈페이지만을 링크로 해두었습니다.
좋은 강의와 TIP이 많은 곳이니 한번 방문해보시기 바랍니다^^
출처 : http://www.kkaok.pe.kr/
오라클 clob 예제
Lob type이란?
lob(Large Object) 타입은 대용량 데이터를 저장하기위한 데이터 타입으로 오라클 8버전부터 지원된다.
Lob 타입의 특징
이전에 대용량 처리는 long 타입으로 처리를 할 수 밖에 없었다. 그런데 이 칼럼은 한테이블에 하나만 사용할 수 있으며 최대 크기가 2GB였다. 더군다나 검색을 구현하기가 어려워 포기를 해야 했다. 그래서 이런 문제를 보안하기 위 나온 것이 Lob 타입이다. Lob 타입은 테이블에 여러개의 컬럼을 생성할 수 있으며 최대 크기가 4GB이다. 또한 long 타입보다 훨씬 쉬운 검색기능을 제공한다.
Lob type의 종류
이전에 대용량 처리는 long 타입으로 처리를 할 수 밖에 없었다. 그런데 이 칼럼은 한테이블에 하나만 사용할 수 있으며 최대 크기가 2GB였다. 더군다나 검색을 구현하기가 어려워 포기를 해야 했다. 그래서 이런 문제를 보안하기 위 나온 것이 Lob 타입이다. Lob 타입은 테이블에 여러개의 컬럼을 생성할 수 있으며 최대 크기가 4GB이다. 또한 long 타입보다 훨씬 쉬운 검색기능을 제공한다.
BLob | (Binary Large Object), 이진 바이너리 데이터의 저장시 사용된다. |
CLob | (Character Large Object), 문서 데이터의 저장시 사용된다. |
BFILE | 외부 파일에 저장된 이진 데이터가 있는 경로의 저장시 사용된다. |
Clob에 저장하기
1: import java.sql.*; 2: import java.io.*; 3: import oracle.sql.*; 4: import oracle.jdbc.driver.*; 5: ... 6: 7: public void insertQuery(UploadBoard up,int re_step,int re_level) throws Exception 8: { 9: ResultSet rs = null; 10: PreparedStatement pstmt = null; 11: Connection conn = null; 12: String query = "insert into "+up.getTableName()+" (seq,re_step, re_level,name,title,pwd,email,readnum,writeday,ip,relativeCnt, homepage,imgInfo,content,tag) values(?,?,?,?,?,?,?,0,sysdate,?,0,?,?,empty_clob(),?)";
|
Clob 불러오기
... 1: public BoardTable getViewData(String tableName,int seq) throws Exception 2: { 3: BoardTable bTable = new BoardTable(); 4: String query = " select * from "+tableName+" where seq = ? "; 5: ResultSet rs = null; 6: PreparedStatement pstmt = null; 7: Connection conn = null; 8: try{ 9: conn = DBManager.getConnection(); 10: pstmt = conn.prepareStatement(query); 11: pstmt.setInt(1,seq); 12: rs = pstmt.executeQuery(); 13: if (rs.next()) { 14: ... 15: ... 16: StringBuffer output = new StringBuffer(); 17: Reader input = rs.getCharacterStream("content"); 18: char[] buffer = new char[1024]; 19: int byteRead; 20: while((byteRead=input.read(buffer,0,1024))!=-1){ 21: output.append(buffer,0,byteRead); 22: } 23: input.close(); 24: bTable.setContent(output.toString());
|
'프로그래밍 > Servlet&JSP' 카테고리의 다른 글
스크립트나 html을 제거하는 정규식 (0) | 2008.10.16 |
---|---|
JAVA에서 엑셀 파일 읽고 쓰기 (0) | 2008.07.14 |
IP 가져오기 (0) | 2008.01.28 |
MultipartRequest 를 이용한 파일업로드 강좌 (0) | 2008.01.27 |
PrepareStatement 를 쓸때 쿼리작성시 주의점 (0) | 2007.12.26 |