[오라클]DBMS_LOB

Nux·2022년 6월 21일
0
post-thumbnail

DBMS_LOB

  • CLOB, BLOB타입의 컬럼에 연산을 제공
    • CLOB, BLOB타입에 VARCHAR2와 같은 함수를 사용하면 에러 발생

관련함수

DBMS_LOB.SUBSTR

SELECT DBMS_LOB.SUBSTR(컬럼, 자를 문자수, 시작위치)
  • 문자열을 자름

DBMS_LOB.INSTR

SELECT DBMS_LOB.INSTR(컬럼, '찾을 키워드', 시작위치, 몇번째 단어인지)
  • 지정된 키워드를 검색해서 위치(몇글자 째에 키워드가 위치해있는지) 반환
    • LIKE로도 조회 가능하나 속도가 느림

DBMS_LOC.GETLENGTH

SELECT DBMS_LOB.GETLENGTH(컬럼)
  • 해당 컬럼의 전체 길이 반환
    • 공백을 포함한 글자수를 반환

예시

샘플 데이터 삽입

INSERT INTO T_CLOB(C1)
VALUES (TO_CLOB('라면 안먹어야됨 힘쌔질려면학교급식에 사과나오면먹으면안되고 밥먹을때 국부터먹는거다 고기반찬나왓다고 고기부터먹는게아니라 다먹고 물컵에 물 80%ㅇ따는후 절반씩 천천히나눠서마셔라 그리고 힘쌔지고싶으면 킥복싱배워라 힘,체력,기술배울수잇고 와사바리를 전문으로가르켜주는게 유도체육관이다 요구르트 먹지말고 요플레 적당히먹어라 그리고 막창,곱창 조금만 먹어라 그리고고기를 많이먹지마라 그리고 라면먹지마라 체질이바뀌니까 그리고 이온음료,탄산음료는 적당히 만먹고 우유는 흰우유마시지마라 딸기우유마셔라 그리고 남.여 는 흰우유마시면힘빠진다 흰우유는 키클때미 도움이됩니다'));
  • TO_CLOB없이 삽입 할 경우, 식별자가 너무 깁니다 오류 발생

DBMS_LOB.SUBSTR

SELECT DBMS_LOB.SUBSTR(C1,5,10)
FROM T_CLOB;
  • 출력값: 힘쌔질려면

DBMS_LOB.INSTR

SELECT DBMS_LOB.INSTR(C1, '힘', 1, 1)
FROM T_CLOB;
  • 출력값: 10. 첫번째 '힘'이라는 단어가 데이터의 10번째 자리에 위치
SELECT DBMS_LOB.INSTR(C1, '힘', 1, 2)
FROM T_CLOB;
  • 출력값: 102. 두번째 '힘'이라는 단어가 데이터의 102번째 자리에 위치
SELECT DBMS_LOB.INSTR(C1, '도움', 1, 2)
FROM T_CLOB;
  • 출력값: 0. 두번째 '도움'이라는 단어가 존재하지 않음(0 반환)

DBMS_LOC.GETLENGTH

SELECT DBMS_LOB.GETLENGTH(C1)
FROM T_CLOB;
  • 출력값: 307

0개의 댓글