해당강좌는 예전에 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 |