CLOB 값을 바이트 단위로 자르기

2023. 5. 16.·Oracle/SQL

Oracle Database는 CLOB 값을 바이트 단위로 자르는 기능을 제공하지 않습니다. CLOB 값을 바이트 단위로 자르려면 조금 복잡한 표현식을 사용해야 합니다.

 

테스트를 위해 아래와 같이 테이블을 생성하겠습니다.

-- 1
DROP TABLE t1 PURGE;
CREATE TABLE T1 (c1 CLOB);

INSERT INTO t1 VALUES ('가나다라마바사아자차카타파하');
COMMIT;

 

SUBSTRB 함수는 CLOB 타입을 지원하지 않습니다. SUBSTR 함수와 DBMS_LOB.SUBSTR 함수는 글자 단위로 CLOB 값을 자르며, SUBSTR 함수는 CLOB 타입, DBMS_LOB.SUBSTR 함수는 VARCHAR2 타입을 반환합니다.

-- 2-1
SELECT SUBSTRB (c1, 1, 10) AS c1 FROM t1;

ORA-22998: CLOB or NCLOB in multibyte character set not supported

-- 2-2
SELECT SUBSTR (c1, 10, 1) AS c1 FROM t1;

C1
--------------------
가나다라마바사아자차

1 row selected.

-- 2-2
SELECT DBMS_LOB.SUBSTR (c1, 10, 1) AS c1 FROM t1;

C1
--------------------
가나다라마바사아자차

1 row selected.

 

아래 쿼리에 사용한 표현식으로 CLOB 값을 바이트 단위로 자를 수 있습니다.

-- 3
SELECT SUBSTRB (DBMS_LOB.SUBSTR (c1, 20), 1, 10) AS c1 -- SUBSTRB (c1, 1, 10)
     , LTRIM (c1, SUBSTRB (DBMS_LOB.SUBSTR (c1, 20), 1, 10)) AS c2 -- SUBSTRB (c1, 10)  
  FROM t1;

C1         C2
---------- ------------------
가나다라마 바사아자차카타파하

1 row selected.
저작자표시 비영리 변경금지 (새창열림)
'Oracle/SQL' 카테고리의 다른 글
  • MERGE 문의 개별 Insert, Update, Delete 로우 수
  • ORA_HASH 함수
  • MERGE 문의 개별 Insert, Update 로우 수
  • 에러 메시지 개선
정희락
정희락
2007년부터 Oracle Database 성능 최적화에 주력해 왔으며, 현재 한국오라클 Engineered Systems Solution Engineering 팀에서 Solution Engineer로 근무하고 있습니다. 이 블로그는 개인적인 연구 목적으로 운영되며, Oracle 사의 공식 입장을 대변하지 않습니다.
  • 정희락
    TunA
    정희락
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • Oracle (166)
        • SQL (32)
        • PLSQL (10)
        • Performance (72)
        • Administration (36)
        • Installation (3)
        • Utilities (1)
        • JSON (8)
        • Vector (4)
      • Exadata (15)
      • SQL*Plus (2)
      • Linux (5)
      • Resources (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 도서

    • 불친절한 SQL 프로그래밍
    • 불친절한 PL/SQL 프로그래밍
  • 링크

    • Connor McDonald
    • Frits Hoogland
    • Jonathan Lewis
    • Julian Dontcheff
    • Julian Dyke
    • Kun Sun
    • Maria Colgan
    • Martin Bach
    • Mike Dietrich
    • Tanel Poder
  • 공지사항

  • 인기 글

  • 태그

    12c
    19c
    21c
    23ai
    case study
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
정희락
CLOB 값을 바이트 단위로 자르기
상단으로

티스토리툴바