REPLACE Function
REPLACE(string_expression, string_pattern [,string_replacement])
REPLACE 함수는 특정 문자열을 지정된 문자열로 치환된 문자열을 반환합니다.
매개변수
string_expression
- 기준이 되는 문자열입니다.
- NULL 또는 빈 값('')인 경우 REPLACE함수는 NULL을 반환합니다.
string_pattern
- string_expression에 포함된 특정 문자열(string_pattern)입니다.
- string_expression에 특정 문자열(string_pattern)이 존재하지 않을 경우 REPLACE 함수는 치환을 하지 않으므로 string_expression을 반환합니다.
string_replacement
- 특정 문자열(string_expression)을 string_replacement로 치환합니다.
- 생략하면, 특정 문자열(string_expression)을 공백으로 치환합니다.
EX 1) 첫 번째 매개변수가 빈 값('') 또는 NULL일 경우
SELECT NVL(REPLACE('', '', 'TRUE'), 'EMPTY') AS COL_EMPTY
, NVL(REPLACE(NULL, NULL ,'TRUE'), 'NULL') AS COL_NULL
FROM DUAL;
첫 번째 매개변수가 빈 값('') 또는 NULL일 경우 빈 값('')과 NULL을 문자열 'TRUE'로 치환하였지만,
NULL이 반환되어 NVL 함수에서 'EMPTY'와 'NULL'이라는 문자열이 반환되었습니다.
EX 2) 세 번째 매개변수 생략
SELECT REPLACE('DATABASE', 'DATA') AS COL_RESULT
, LENGTH(REPLACE('DATABASE', 'DATA')) AS COL_LEN
FROM DUAL;
'DATABASE' 문자열에서 'DATA'가 공백 처리되어 'BASE' 문자열이 반환되었습니다.
EX 3) 문자열 치환
SELECT REPLACE('ORACLE DATABASE', 'ORACLE', 'MySQL') AS COL_RESULT
FROM DUAL;
문자열 'ORACLE'이 'MySQL'로 치환되었습니다.
EX 4) 캐리지 리턴(carriage return) 치환
REPLACE(REPLACE( string_expression, CHR(10) ), CHR(13) )
브라우저와 OS마다 캐리지 리턴 처리되는 방식이 다르다는 점을 주의합니다.
EX 5) 첫 번째 매개변수와 두 번째 매개변수가 동일한 경우
SELECT NVL(REPLACE('ORACLE', 'ORACLE'), 'NULL') AS COL_RETURN
FROM DUAL;
NULL이 반환됩니다.
마무리
특수 문자를 치환해야 하는 경우에는 REGEXP_REPLACE 또는 TRANSLATE를 사용하는 두 가지 다른 방법이 있습니다.
REPLACE 함수를 중첩하여 특수 문자를 치환할 수 있지만, 성능면에서 좋지 않습니다.
'DataBase > Oracle' 카테고리의 다른 글
[ORACLE]문자열의 음성을 코드로 반환하는 SOUNDEX 함수 (0) | 2021.06.26 |
---|---|
[ORACLE]문자 치환 TRNSLATE 함수 (0) | 2021.06.26 |
[ORACLE]나머지 값을 구하는 REMAINDER, MOD 함수 (0) | 2021.06.05 |
[ORACLE]양수, 음수 판단하는 SIGN 함수 (0) | 2021.06.05 |
[ORACLE]최대값, 최소값 구하는 GREATEST, LEAST 함수 (0) | 2021.06.04 |
댓글