대용량 처리 자료형 : LOB
대용량 문자처리 자료형 : CLOB
- char의 C + LOB
clob의 필요성
varchar2는 최대 4000byte이기 때문에 4000byte가 넘는 고용량들을 다룰 때, clob이 필요
문제점
CLOB을 그냥 쓰면 자바 객체 출력 때처럼 객체주소가 찍혀 나오는 것처럼 출력됨
해결책
DBMS_LOB.SUBSTR() 사용
DBMS_LOB.SUBSTR()
DBMS_LOB.SUBSTR(CLOB컬럼명, 자를 문자 수, 시작위치offset)
주의사항
1)TO_CLOB()으로 감싸기
TO_CLOB(클롭컬럼명)으로 감싸지 않으면, 식별자가 너무 길다는 오류 발생 가능성
TO_CLOB(CONTENT)
2)길이 한도
CLOB 자체는 4000넘어도 되지만 DBMS_LOB.SUBSTR()을 쓰면 4000까지만 가능
따라서, 4000이 넘는 CLOB데이터를 조회할 때는 이어 붙여야함
||이나 concat() 사용
ex) 1-4000 + 4001-8000 식으로 문자열 이어 붙이는 방법
DBMS_LOB.SUBSTR(col1, 4000, 1) || DBMS_LOB.SUBSTR(col1, 4000, 4001) AS CONTENTS
SELECT
TITLE,
WRTIER,
DBMS_LOB.SUBSTR(col1, 4000, 1) || DBMS_LOB.SUBSTR(col1, 4000, 4001) AS CONTENTS
FROM BOARD
관련 함수
DBMS_LOB.INSTR(CLOB컬럼명, '검색할 단어', 몇번째 위치한 단어) // 찾으려는 문자열의 인덱스번호 반환
DBMS_LOB.GETLENGTH(CLOB컬럼명) // 해당 컬럼의 길이 반환
1)DBMS_LOB.INSTR()
지정한 문자열이 나올 때마다 해당 인덱스 번호 반환
LIKE보다 조회 빠름
2)DBMS_LOB.GETLENGTH()
해당 컬럼의 전체 길이 반환(공백 포함)
참고자료
https://developyo.tistory.com/364
https://joongwoonc.tistory.com/52
'SQL' 카테고리의 다른 글
[SQL] NATURAL JOIN & EQUI JOIN & NON EQUI JOIN (자연조인 & 등가조인 & 비등가 조인) (0) | 2022.10.11 |
---|---|
[SQL] WINDOW FUNCTION & WINDOW절 (1) | 2022.09.13 |
[SQL] 윈도우 함수(WINDOW FUNCTION) 종류 (0) | 2022.08.29 |