티스토리 뷰
반응형
오라클에서는 VARCHAR2 타입으로 최대 4000 byte 까지만 저장할 수 있습니다.
4000 byte가 넘는 문자열을 저장하기 위해서는 CLOB 타입으로 컬럼을 생성해야 하죠.
4000 byte가 넘는 데이터에서 특정 문자열을 찾아 치환(replace)하고 싶을 때 어떻게 해야 할까요?
저장된 값이 4000 byte 이하라면 아래와 같이 replace() 함수를 사용할 수도 있습니다.
EX) BIG_TEXT 컬럼에서 '대한민국' 문자열을 찾아 'KOREA'로 변경
SELECT TO_CLOB(REPLACE(TO_CHAR(BIG_TEXT), '대한민국','KOREA'))
FROM T_TABLE
저장된 값이 4000 byte가 넘는다면, 정규 표현식 함수 'REGEXP_REPLACE()'를 사용하면 됩니다.
EX) BIG_TEXT 컬럼에서 '대한민국' 문자열을 찾아 'KOREA'로 변경
SELECT REGEXP_REPLAC(BIG_TEXT, '대한민국','KOREA')
FROM T_TABLE
REGEXP_REPLACE() 함수는 정규 표현식을 사용할 수 있기 때문에 쓰임새도 더 많습니다.
가령 CLOB 타입의 CONTENTS라는 컬럼예 'HTML' 문서가 저장되어 있을 때 HTML에서 특정 이미지가 있는 <IMG> 턔그를
지워야 할 경우에도 쉽게 처리할 수 있습니다.
CREATE TABLE t_table
(
contents CLOB
);
INSERT INTO t_table VALUES('<html> <body> <img src=''a.jpg''/></body></html>');
SELECT contents
,REGEXP_REPLACE(contents,'<img(.*?)a.jpg(.*?)/>' , '')
FROM t_table
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- VARIDESK
- 홈 오피스
- Sybase IQ
- 별이 빚나는 밤
- 솔리드 쿨론
- Life Chair
- GKRS
- 배당급
- 화분벌레
- 고체 향수
- 별잉 빛나는 밤
- 카카오 에드
- 코라나 19
- node.js
- 빈센트 반 고흐
- 브리다 정수기
- 르세라핌
- 루미큐브 종류
- 유가바이트디비
- 남설 팔찌
- 증권정보포털
- Pixel Pals
- weka
- JMW 헤어드라이기기
- yugabyteDB
- 파나소닉 비데 DL-EH10KWS
- 오미크론
- 로니카 BCS
- 톡토기
- 매직 트랙패드2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함