LOB

 

개요)

LOB은 Oracle8에서 새로 도입된 데이터 형입니다.

LOB은 LONG 데이터 형에 비해 더 좋은 기능을 제공합니다.

따라서 LONG을 사용하는 기존의 어플리케이션들이 LOB을 사용하도록 변환되는 것이 바람직합니다.

이러한 이전 과정을 돕기 위하여 Oracle9i에서는 다양한 기능들을 제공합니다.

 

장점)

LONG 데이터 형으로부터 LOB 데이터 형으로의 변환을 돕습니다.

사용자로 하여금 새로운 어플리케이션에 LONG보다는 LOB을 사용할 수 있도록 유도합니다.

LONG을 사용하던 기존의 어플리케이션이 보다 손쉽게  LOB을 사용하는 어플리케이션으로 이전될 수 있도록 합니다.

 

LONG 에서 LOB이전)

ALTER TABLE 명령이 LONG 형 컬럼을 CLOB으로,  LONG RAW 컬럼을 BLOB으로 수정할 수 있도록 개선되었습니다.

그러한 변환은 ALTER TABLE... MODIFY 명령으로 수행할 수 있습니다.

이 작업은 ALTER TABLE... MOVE 명령과 유사한 방법으로 수행됩니다.

따라서 변환 도중 LONG 과 LOB 데이터 모두를 저장할 수 있는 공간이 필요합니다.

 

    예) ALTER TABLE print_media

     MODIFY (press_release CLOB);

 

LOG이전을 위한 SQL지원)

VARCHAR2 형 인자를 받아들이는 SQL 함수 및 연산자들이 CLOB 또한 인자로 받을 수 있습니다.

RAW 형 인자를 받아들이는 SQL 함수는 BLOB 또한 인자로 받을 수 있습니다.

 

     예)SELECT SUBSTR(press_release, 1, 200)

     FROM print_media;

 

LOB 이전을 위한 PL/SQL 지원)

표준  패키지에 정의되어 LONG 형의 인자를 받아들이는  SUBSTR, INSTR 등의 함수들이 CLOB 형 또한 인자로 받아들일 수 있습니다.

LONG RAW를 받아 들이는 모든 함수들이 BLOB 또한 받아들입니다.

변수 값을 대입하거나 인자를 넘겨줄 때에 LOB과 VARCHAR 또는 RAW 사이의 형 변환이 묵시적으로 수행됩니다.

사용자는  LOB 컬럼을 VARCHAR 및 RAW로 정의하고 바인드할 수 있습니다.

 

지정 및 인자 전달에서의 묵시적 형 변환)

LONG 컬럼에 기반, %TYPE을 이용하여 선언된 변수들은 LONG 컬럼이 LOB 컬럼으로 변환이 된 후에 자동으로 LOB 형의 값들을 지정받을 수 있습니다

LOB, VARCHAR 그리고 RAW 값들은 일단 LONG 컬럼이 LOB 컬럼으로 변환이 된 후에는, LONG 컬럼에 기반, %TYPE을 이용하여 선언된 인자로 전달될 수 있습니다.

사용자는 CLOB 컬럼을 VARCHAR 변수로, BLOB 컬럼을 RAW 변수로 읽어 들일 수 있습니다.

VARCHAR 및 RAW를 받아들이는 내장 함수들 또한 CLOB 및 BLOB 데이터를 받아들일 수

 

   예: LOB의 묵시적 형 변환)

     DECLARE

       v_clob  CLOB;

       v_char  VARCHAR(32500);

     BEGIN

     SELECT ad_sourcetext INTO v_clob

       FROM print_media

      WHERE product_id = 501;

     v_char := rtrim(v_clob);

     END;

 

LOB 이전의 제한)

LOB은 클러스터 테이블에서 사용할 수는 없습니다.

인덱스, 그리고 테이블을 이전할 때 그 테이블에 기초하여 만들어진 Materialized 뷰는 수동으로 재구축해야 합니다.

LOB 컬럼에 대한 UPDATE OF 트리거는 지원되지 않습니다.

뷰에 대한 INSTEAD OF 트리거에서 LOB 컬럼의 삽입 또는 갱신을 위해서 문자열을 지정할 수는 없습니다.

 

기 타)

파티션된 인덱스 구조 테이블에서도 LOB 컬럼을 사용할 수 있습니다.

LOB 컬럼에 대한 함수 기반 인덱스의 사용이 가능합니다.

 

 

 

 

 

 

 

 

 

 

'(DB) Oracle > 기본문법' 카테고리의 다른 글

Oracle - LOB Type  (0) 2017.01.18
Oracle - Date다루기  (0) 2017.01.18
Oracle - Data_Type_유니코드지원  (0) 2017.01.18
Oracle - Data_Type  (0) 2017.01.18
Oracle 기본문법 - PARAMETER LISTS  (0) 2017.01.18
Posted by 농부지기
,