Oracle 의 초대형 데이터 형식

6171 단어 데이터 뱅 크
Oracle 의 초대형 데이터 형식
1 Orlce 중 VARCHAR 2
         데이터 베 이 스 를 사용 할 때 문자 데 이 터 는 일반적으로 VARCHAR 2 를 사용 하 는데 VARCHAR 2 는 PL/SQL Data Types 의 변수 유형 도 나 누고 Oracle Database 의 필드 유형 도 나 누 어 장면 에 따라 최대 길이 가 다르다.Oracle Database 에서 VARCHAR 2 필드 형식 으로 최대 값 은 4000 입 니 다.PL/SQL 에서 VARCHAR 2 변수 유형 은 최대 바이트 길이 가 32767 입 니 다.VARCHAR 2 가 우리 가 저장 해 야 할 정 보 를 수용 하지 못 할 때 나 오 는 Oracle 의 빅 데이터 형식 LOB(Large Object,대형 대상).
      프로젝트 에서 발생 하 는 문제:프로 토 콜 에 서명 할 때 다른 서비스의 라 이브 러 리 를 요청 해 야 하기 때문에 메시지 입고 저장 프로 토 콜 기록 을 전송 합 니 다.일부 프로 토 콜 설정 이 너무 많 을 때 입고 필드 에 문제 가 생 길 수 있 습 니 다.마지막 으로 varchar 2 를 CLOB(문자 형 대형 대상)로 바 꾸 기로 결 정 했 습 니 다.
이 Orlce 의 LOB 타 입
     ·  Oracle 에서 LOB(Large Object,대형 대상)유형의 필드 는 현재 점점 더 많이 사용 되 고 있다.이런 유형의 필드 는 용량 이 크 고(최대 4GB 의 데 이 터 를 수용 할 수 있 음)한 표 에 이런 유형의 필드 가 여러 개 있 을 수 있어 유연 하고 데이터 양 이 매우 많은 업무 분야(예 를 들 어 이미지,파일 등)에 적용 된다.
·  LOB 유형 은 BLOB 와 CLOB 두 가지 로 나 뉜 다.BLOB 는 바 이 너 리 대형 대상(Binary Large Object)으로 텍스트 가 아 닌 바이트 스 트림 데이터(예 를 들 어 프로그램,이미지,동 영상 등)를 저장 하 는 데 적용 된다.
·  한편,CLOB,즉 문자 형 대형 대상(Character Large Object)은 문자 집합 과 관련 되 고 텍스트 형의 데이터(예 를 들 어 역사 파일,대부분 저작 등)를 저장 하기에 적합 하 다.
삼 조작
      1.일반 방식:
           일반 검색 어 에 서 는 CLOB 형식의 필드 내용 을 볼 수 없 으 며,일반 삽입 도 Oracle 의 암시 적 전환 때 문 입 니 다.
      2.pl/sql 함수 사용
--PL/SQL 문법 을 사용 해 SQL 을 직접 맞 추 는 대신 바 인 딩 변수 로 해결한다
DECLARE
       V_LANG CLOB:='삽입 할 대량의 문자열';
       V_UPDATE CLOB:='업 데 이 트 된 대량의 문자열';
BEGIN
  INSERT INTO temp t VALUES ('Grand.Jon', 22, V_LANG);        --증가시키다
  UPDATE temp t SET t.temp_clob = V_UPDATE WHERE rownum = 1;  --수정 하 다.
  SELECT t.NAME, dbms_lob.substr(t.temp_clob) FROM TEMP t;    --검색 은 CLOB 를 문자 형식 으로 변환 합 니 다.
  DELETE temp t WHERE rownum = 1;                             --열 별로 삭제
  COMMIT;
END;
3.CLOB 작업 에 대해 저 희 는 저장 과정 에서 기본적으로 dbms 를 사용 합 니 다.lob 에서 substr,append,write 등 방법.
                dbms_lob.createtemporary(V_SQL,true);     --맞 춤 형 sql 을 저장 하기 위해 임시 clo 를 만 듭 니 다.
                   dbms_lob.write(v_SQL,'정보 쓰기');          --쓰기 동작
                   dbms_lob.append(v_SQL,',');               --맞 춤 형 clob
                 dbms_lob.substr(v_SQL);                   --clob 를 캡 처 합 니 다.매개 변 수 를 전달 하지 않 으 면 모두 읽 습 니 다.
                   dbms_lob.freetemporary(v_SQL);            --clob 석방
         4.자바 에서 CLOB 조작 하기:
                   새로 추가:
                    먼저 빈 CLOB 를 삽입 한 다음 열 을 잠 그 고,
        String sql = "insert into temp values(?,?,empty_clob())";
          String sqlClob = "select temp_clob from temp t where t.name=? for update";
                              
                    clob = (CLOB) rs.getClob(1);
                    writer = clob.getCharacterOutputStream(); //  clob      
                    writer.write(article.getContent());
                    writer.flush();
                    writer.close();
            :   JDBC  setClob()  ;
              CLOB clob   = oracle.sql.CLOB.createTemporary(conn,false,oracle.sql.CLOB.DURATION_SESSION);
              clob.setString(1L, content);
              pst = conn.prepareStatement(sql);
              pst.setClob(1, clob);
              pst.setString(2,name);
              result = pst.executeUpdate();
            :
                Clob clob = rs.getClob("temp_clog");
                Reader rd = clob.getCharacterStream();
                char [] str = new char[12];
                while(rd.read(str) != -1) {
                    builder.append(new String(str));
                }
                article.setContent(builder.toString());
     
        CLOB   VARCHAR2DBA           ,       ,            ,  DatabaseCLOB
          
                    
 

 
 

좋은 웹페이지 즐겨찾기