오라클 DB에 문자열 값을 저장하기 위해 일반적으로 사용하는 데이터타입 VARCHAR2의 최대길이는 4000byte이다.

    오라클 12c부터는 초기화 파라미터 MAX_STRING_SIZE=EXTENDED로 설정하면 SQL 데이터타입 VARCHAR2의 크기를 최대 32,767byte까지 지정할 수 있다. 하지만 4000바이트를 넘는 경우 내부적으로는 CLOB(Character Large Object)를 사용하므로 진정한 VARCHAR2라고 볼 수는 없다. VARCHAR2 타입에 비해 CLOB 데이터타입이 가지는 단점(기능상 제약, 성능 저하)을 모두 가지고 있다고 볼 수 있다.

     

    C나 비주얼 베이직, 자바와 같은 언어에서 CLOB 데이터타입을 사용할 때는 언어에 따라 다소 차이가 있지만 다른 데이터타입에 비해 사용상 복잡함이 있다. 하지만 PL/SQL에서는 변수 선언 시의 데이터타입만 다를 뿐, 다른 스칼라 타입과 별 차이 없이 사용할 수 있도록 해 준다.

    REM 예제용 테이블 생성
    CREATE TABLE t_clob(
    	line# NUMBER,
        script CLOB
    );
    
    DECLARE
    	v_rec t_clob%ROWTYPE;
    BEGIN
    	DELETE FROM t_clob;
        
        v_rec.line# := 1;
        v_rec.script := '옛날 옛날 어느 깊은 산속에는 할아버지가 살았습니다.';
        INSERT INTO T_CLOB VALUES v_rec;
        
        v_rec.line# := 2;
        v_rec.script := '할머니도 같이 살았습니다.';
        INSERT INTO t_clob VALUES v_rec;
        
        SELECT line#, script
          INTO v_rec
          FROM t_clob
        WHERE line# = 1;
        
        DBMS_OUTPUT_PUT_LINE('v_rec.line#||' : '||v_rec.script);
    END;

     

    'DATABASE > SQL, PL-SQL' 카테고리의 다른 글

    제어문 - 2  (0) 2021.02.02
    제어문 - 1  (0) 2021.02.02
    트랜잭션(Transaction) 제어  (0) 2021.01.27
    SQL - MERGE, DELETE문의 사용  (0) 2021.01.25
    SQL - SELECT, INSERT, UPDATE 사용  (0) 2021.01.25

    댓글