[ORACLE] 오라클 REPLACE 문자열 변환(엔터,특수문자)

REPLACE 문법

REPLACE('컬럼명','찾을문구','변환문구')

REPLACE(target column, target_str, replace_str)

오라클에서는 문자열을 치환 또는 제거 하는 방법으로는 REPLACE 함수를 사용하면 됩니다.

아래 예제를 통해서 직접 결과를 보겠습니다.

 

 

REPLACE 특정문자 치환(맥스->AIR MAX)

특정문자 치환시 대문자, 소문자를 구분하기 때문에 유의해서 사용해야 합니다.

SELECT '이번에 산 신발은 맥스97이다. 나는 맥스95도 가지고있다' as str
,REPLACE('이번에 산 신발은 맥스97이다. 나는 맥스95도 가지고있다', '맥스', 'AIR MAX') as restr 
FROM DUAL;

 

REPLACE 특정문자 공백 변환(특별시->공백)

SELECT '나는 서울특별시에 살고 있습니다.' as str
,REPLACE('나는 서울특별시에 살고 있습니다.', '특별시', '') as restr 
FROM DUAL;

 

REPLACE 엔터값 제거

REPLACE(REPLACE(대상컬럼, CHAR(13), ''), CHR(10), '')

컬럼의 엔터값을 제거하기 위해서는 오라클의 CHAR함수를 사용해야 합니다.

DB툴에서는 공백이나, 엔터가 적용된 부분이 조회했을때에는 모르는 경우가 있습니다.

테스트로 컬럼에 공백을 넣고 쿼리를 조회해보겠습니다.

Oracle SQL Developer 툴에서는 엔터를 넣었지만 데이터로는 차이가 보이지 않습니다.

하지만 더블클릭으로 데이터를 보면은 실제로는 엔터가 입력되어있는것을 확인할 수 있습니다.

SELECT COL08 as str
     , REPLACE(REPLACE(COL08, CHR(13), ''), CHR(10), '') AS restr
FROM TEMP1018;

 

아래 CHR 함수로 유용하게 사용할 수 있습니다.

CHR(9) : 탭문자

CHR(10) : 줄바꿈(라인피드)

CHR(13) : 행의 처음(캐리지리턴)

CHR(38) : &

CHR(39) : '(따옴표)

CHR44) : 쉼표

 

REPLACE 탭제거

REPLACE(대상컬럼, CHAR(9), '')

SELECT COL08 as str
     , REPLACE(COL08, CHR(9), '') AS restr
FROM TEMP1018;

 

댓글

Designed by JB FACTORY