728x90
REPLACE 함수
REPLACE(컬럼명, '찾을문자', '변환문자')
오라클에서 특정 문자열을 치환하거나 제거하기 위해서는 REPLACE() 함수를 사용하면 된다.
단순 문자열 치환 외에도 엔터값 제거나 <br/>태그를 엔터값 치환에도 많이 사용된다.
오라클 10g 부터 정규식 사용이 가능한 REGEXP_REPLACE()함수가 추가 되었다.
특정문자 치환
REPACE(TEXT, 'NAME', 'NM')
WITH TEST AS (
SELECT 'Google Store' NM FROM DUAL
)
SELECT A.NM ,
REPLACE(A.NM, 'Store', 'STORE') RE_NM
FROM TEST A
특정문자 제거
REPLACE(TEXT, 'Sol', '')
WITH TEST AS (
SELECT 'Google Store' NM FROM DUAL
)
SELECT A.NM ,
REPLACE(A.NM, 'Store', 'STORE') RE_NM
FROM TEST A
엔터값 제거
REPLACE(REPLACE(대상컬럼, CHAR(13), ''), CHR(10), '')
WITH TEST AS (
SELECT 'Google' || CHR(13)||CHR(10) || 'Store' NM FROM DUAL
)
SELECT A.NM ,
REPLACE(REPLACE(A.NM, CHR(13), ''), CHR(10), '') RE_NM
FROM TEST A
- 엔터값을 제거하기 위해서는 replace함수를 두번 사용해야 정확히 제거된다
- 윈도우에서 엔터값은 chr(13)chr(10)이며 리눅스에서 엔터값은 chr(10)으로 사용된다
탭문자 제거
REPLACE(TEXT, chr(9), '')
WITH TEMP AS (
SELECT 'Steven' || CHR(9) || 'King' NM FROM DUAL
)
SELECT A.NM ,
REPLACE(A.NM, CHR(9), '') RE_NM
FROM TEMP A
- 오라클에서 탭문자는 chr(9)를 사용한다
--<br/>태그 엔터값으로 치환
REPLACE(TEXT, '<br/>', chr(13)||chr(10))
- <br/>태그 치환시 대문자, 소문자를 구분하기 때문에 유의해야 한다
- <br>, <BR/> 등 경우의 수가 많다면 여러번 치환하는게 좋다
'DB > Oracle' 카테고리의 다른 글
[Oracle] 다중 WITH절 사용법 및 예제 (0) | 2021.10.29 |
---|---|
[Oracle]WITH절 사용법 및 예제(임시테이블) (0) | 2021.10.26 |
[Oracle]테이블 및 데이터 복사하기(백업) (0) | 2021.10.14 |
[Oracle]REGEXP_SUBSTR-콤마로 분리된 문자열을 여러 행으로 변환하기 (0) | 2021.10.06 |
[Oracle] REGEXP_SUBSTR-콤마로 분리된 값을 컬럼으로 만들기 (0) | 2021.10.06 |
댓글