/** * Oracle10g 부터는 CLOB 데이터 타입을 처리하는 방법이 간단해 졌습니다. * * -- scott/tiger에 테스트 테이블 생성 * create table clob_test (contents clob); * * - 첫 번째 방법 SetBigStringTryClob을 true 로 설정한 후 처리 하는 방법 입니다. * - 두 번째 방법 OraclePreparedStatement의 setStringForClob 메소드를 이용하는 방법 입니다. * - 자세한 내용은 아래 링크를 참고해 주세요. * 참고링크 * */ import java.sql.DriverManager; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; public class CLOBTypeTest { public static void main(String[] args){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rset = null; String user = "scott"; String password = "tiger"; String url = "jdbc:oracle:thin:@localhost:1521:ora10g"; try{ StringBuffer str = new StringBuffer(); for(int i=0 ; i<10000; i++){ str.append(" CLOB Test Data "); } System.out.println(" INSERT CLOB length: "+str.length()); Properties props = new Properties(); props.put("user", user ); props.put("password", password); props.put("SetBigStringTryClob", "true"); DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); conn = DriverManager.getConnection (url, props); pstmt = (PreparedStatement)conn.prepareStatement(" INSERT INTO clob_test VALUES(?) "); pstmt.setString(1, str.toString()); pstmt.executeUpdate(); pstmt.close(); String sqlCall = "SELECT contents FROM clob_test WHERE rownum = 1 "; pstmt= conn.prepareStatement(sqlCall); rset = pstmt.executeQuery(); String clobVal = null; while (rset.next()) { clobVal = rset.getString(1); System.out.println(" SELECT CLOB length: "+clobVal.length()); } }catch(SQLException sqle){ sqle.printStackTrace(); }finally { try { if (rset != null) rset.close(); if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); } catch (SQLException se) { } } } }
- 강좌 URL : http://www.gurubee.net/lecture/1904
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.