DataBase/Oracle

[Oracle] 오라클 CLOB형 LENGTH(길이) 구하기, SUBSTR(문자열 자르기) 하는 방법

희랍인 조르바 2018. 9. 4. 18:02


오라클에서 CLOB을 VARCHAR2와 같은 함수를 쓰면 에러가 발생한다. 


CLOB형태의 컬럼 데이터를 길이를 구하고, 문자열을 자르려면


DBMS_LOB.GETLENGTH, DBMS_LOB.SUBSTR을 사용하면 된다.


아래처럼 사용하면 된다. 컬럼은 CLOB형이어야한다.


1
2
3
4
5
SELECT DBMS_LOB.SUBSTR(CLOB형 컬럼명, 자를 문자열 길이, OFFSET) AS "SUBSTR_DATA_COLUMN" -- 문자열 자르기
       DBMS_LOB.GETLENGTH(CLOB형 컬럼명)  AS "COLUMN_DATA_LENGTH" , -- 문자열 
 FROM ZORBA_EMPLOYEE             
     
 
cs



응용하면 아래처럼 사용할 수 있다.


첫번째는 문자열을 잘라서 마지막 1 글자만 얻어내려는 방법이고,


두번째는 테이블의 CONTENTS라는 컬럼의 데이터 길이를 알아내기 위함이다.


1
2
3
4
5
SELECT DBMS_LOB.SUBSTR(CONTENTS, 1, DBMS_LOB.GETLENGTH(CONTENTS)) AS "LAST_CONTENT_CHAR"
       DBMS_LOB.GETLENGTH(CONTENTS)  AS "CONTENT_LENGTH" ,
 FROM ZORBA_EMPLOYEE             
     
 
cs