[오라클] [35] BLOB 및 CLOB 필드 분야

서문 :

이진 데이터의 대량 저장 BLOB. 등 사진, 음악,로, 다음 이진수로 저장

많은 양의 텍스트 데이터를 저장하기위한 CLOB. 이러한의 Clob를 초과 할 것으로 예상 4000 HTML 페이지 등 VARCHAR2 최대 4000입니다, 같은

바디 :

1, 나는 자바 + MyBatis로를 사용하여, 문자열은 직접 처리. 문자열은 최대 4G를 절약 할 수 있습니다

데이터베이스 : 테이블 만들기

- 테이블을 만들고 
생성  테이블 CLOB_TEST 
( 
  ID       VARCHAR2 ( 32 ) 기본 sys_guid (), 
  콘텐츠 CLOB를 
)

엔티티 클래스 :

패키지 com.bf.test.entity; 

공공  클래스 ClobTest {
     개인 문자열 ID; 

    개인 문자열 내용; 

    공공 문자열 getId () {
         반환 아이디; 
    } 

    공공  공극 setId (문자열 ID) {
          .ID = ID; 
    } 

    공공 문자열의 getContent () {
         반환 내용; 
    } 

    공공  무효 의 setContent (문자열의 내용) {
          .content = 내용; 
    } 

}

검색어 : sql.xml

<? XML 버젼 = "1.0"인코딩 = "UTF-8" ?> 
<! DOCTYPE 매퍼 PUBLIC "- // mybatis.org//DTD 매퍼 3.0 // EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 
< 매퍼 네임 스페이스 = "com.bf.labor. dao.IClobDao " >    
  < resultMap는 ID ="BaseResultMap " 타입 ="com.bf.test.entity.ClobTest "  > 
    < 결과 ="ID " 속성 ="ID " jdbcType가 ="VARCHAR "  /> 
    < 결과 =" 함유량" 
  된 resultMap > 
  
  < 선택 ID = "getList" 된 resultMap = "BaseResultMap" > 
    선택 *로부터 CLOB_TEST 
  </ 선택 > 
  
  < 인서트 ID = "삽입"  > 
    CLOB_TEST (CONTENT)에 삽입 
    된 값 (# {콘텐츠}) 
  </ 삽입 > 
  
</ 매퍼 >

시험 종류 :

패키지 com.test; 

수입 은 java.util.List; 

수입 org.junit.Test;
수입 org.junit.runner.RunWith;
수입 org.springframework.beans.factory.annotation.Autowired;
수입 org.springframework.test.context.ContextConfiguration;
수입 org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
수입 org.springframework.test.context.web.WebAppConfiguration; 

수입 com.bf.labor.entity.ClobTest;
수입 com.bf.labor.service.ClobService; 

@RunWith (SpringJUnit4ClassRunner. 클래스 ) 
@WebAppConfiguration ( "웹" )
@ContextConfiguration (위치 = "파일 : G : /WIM/Source/webapp/WEB-INF/spring-core-config.xml" )
 공공  클래스 ClobServiceTest는 { 
    @Autowired 개인 ClobService clobService을; 
    
    @Test 
    공개  공극 시험 () { 
        목록 <ClobTest> = 목록 .clobService.getList (); 
        에서 System.out.println ( "테스트 ="+ 리스트); 
    } 
    
    @Test 
    공공  무효 TEST2 () { 
        문자열 str을 = "" ;
        위한 ( int로 난 <5000; I = 0 난 ++  ) {
            STR = STR + "正" ; 
        } 
        에서 System.out.println ( "STR ="+ STR); 
        
        ClobTest newInfo = 새로운 ClobTest (); 
        newInfo.setContent (STR); 
        .clobService.insert (newInfo); 
    } 
}

2, CLOB 필드는 문자열로 변환됩니다. 데이터베이스 데이터 마이그레이션이 점에 특히주의를 기울여야 할 때, 경우에 대처하기 위해, CLOB 필드는 비어 있습니다

방법 1 : dbms_lob.substr ()

참고 : dbms_lob.substr (내용)보다 4,000 자 이하, 불평 할 것이다

참고 블로그 :

오라클은 문자열 필드의 Clob로 변환합니다 - sqyNick - CSDN 블로그
https://blog.csdn.net/u010670151/article/details/52210333

 

추천

출처www.cnblogs.com/huashengweilong/p/11355606.html