ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LOB
    Oracle-diary/DB의 중요성질 2020. 1. 29. 18:56
    LOB이란?
    LOB은 TEXT,그래픽,이미지,비디오,사운드 등 구조화 되지 않은 대형 데이터를 저장하는데 사용된다.
    (멀티미디어 데이터는 크기가 크고 구조화된 데이터들은 크기가 작다.그래서 LOB을 만들었다.)
     
    *한국의 협업시 이미지 파일을 다루는 방법
    DB에서 저장된 이미지 파일을 찾아서 프로젝트를 진행하는 것보다 OS상에서 파일을 저장하고
    저장해둔 곳의 주소값만 DB에 저장해 주소를 타고 이미지를 불러오는 방법을 사용하고 있다.
     
     
     
    LOB의 종류 ?
    CLOB : 문자 대형 객체(Character),Oracle Server는 CLOB과 VARCHAR2 사이에 암시적 변환을 수행(최대 4G 저장)
    BLOB : 이진 대형 객체(Binary),이미지,동영상,MP3 등을 저장한다. (최대 4G 저장)
    NCLOB : 내셔널 문자 대형객체(National),오라클에서 정의되는 National Character Set을 따르는 문자(최대 4G 저장)
    BFILE : OS에 저장되는 이진 파일의 이름과 위치를 저장. 읽기 전용 모드로만 액세스가 가능하다. (최대 4G 저장)
     
     
     
     
    *데이터베이스 내부, 외부에 따라 사용되는 LOB
    내부: BLOB,CLOB,NCLOB,- Table에 LOB 형식의 컬럼을 생성하고 이곳에 데이터의 실제 위치를 가리키는 Locator 저장한다.
    외부 : BFILE 사용
     
    특징
    하나의 테이블에 여러 개의 LOB 열(column)이 가능하다.
     
     
     
    -- LOB 타입 컬럼을 포함한 테이블 생성
    -- 제약사항 : LOB 타입 컬럼을 cluster key로 사용하는 클러스터 테이블 생성 불가
    CREATE TABLE LOB_TEST
    (ID NUMBER,
    CLOB CLOB, --CLOB
    BLOB BLOB, --BLOB
    NCLOB NCLOB, --NCLOB
    BFILE BFILE) --BFILE ;
     
     
    -- LOB 데이터 저장
    INSERT INTO LOB_TEST
    VALUES(1
    ,'AXIOM' -- CLOB
    ,UTL_RAW.CAST_TO_RAW('Hello') --BLOB
    ,'엑시엄' --NCLOB
    ,BFILENAME(null,null));
    -- BFILENAME('경로or디렉토리객체명','파일명'))
     
     
    -- LOB 데이터 조회
    -- 일반 조회(컬럼 내용 중 일부는 조회되지 않음)
    SELECT * FROM LOB_TEST;
     
    ID CLOB BLOB NCLOB BFILE
    ------- -------- ---------- ------ -----------------
    1 AXIOM 48656C6C6F 엑시엄 bfilename(NULL)
     
     
     
    -- 컬럼 길이 조회
    SELECT ID
    ,DBMS_LOB.GETLENGTH(CLOB) CLOB
    ,DBMS_LOB.GETLENGTH(BLOB) BLOB
    ,DBMS_LOB.GETLENGTH(NCLOB) NCLOB
    ,DBMS_LOB.GETLENGTH(BFILE) BFILE
    FROM LOB_TEST;
     
    ID          CLOB     BLOB   NCLOB       BFILE
    ------ ---------- ---------- ---------- ----------
    1            5            5           3

    'Oracle-diary > DB의 중요성질' 카테고리의 다른 글

    SQL과 ascii코드  (0) 2020.01.29
    SQL과 SQLPLUS 명령어 비교  (0) 2020.01.29
    ROWNUM  (0) 2020.01.29
    NULL특징  (0) 2020.01.29
    DB의 중요한 성질  (0) 2020.01.29

    댓글

Designed by Tistory.