오라클 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 |
댓글