오라클에서 탭 문자를 제거하는 방법에 대해 알아봅시다. 보통 탭을 누르면 탭 문자가 직접적으로 입력이 되기보다는 다른 인풋 컨트롤로 이동을 합니다. 그리하여 특정 참조 개체는 탭 값을 고려하지 않고 프로그래밍이 되는 경우가 있습니다. 파포인트스프레드를 예로 들면, 데이터베이스에 탭 키가 들어가 있는 경우에, 스프레드시트를 조회하면 화면이 프리징 되는 현상이 발생합니다.
오라클에서 문자를 제거할 때에는 REPLACE 함수를 대부분 사용합니다. 때에 따라 REGEXP_REPLACE (10g 버전 이상) 함수를 사용할 수도 있습니다.
테스트 데이터는 OLD 값을 NEW 값으로 변경해 보는 것입니다. 예제 데이터를 조회하면 현재 컬럼 값은 'OLDBOY'입니다.
SELECT COLUMN_NAME FROM TABLE_NAME;
COLUMN_NAME
--------------------------------------------------------------------------------
OLDBOY
OLD 값을 NEW 값으로 바꾸기
리플레이스 함수를 사용하는 기본적인 방법입니다. OLD 값을 NEW 값으로 바꿉니다. (OLDBOY => NEWBOY)
SELECT REPLACE (COLUMN_NAME, 'OLD', 'NEW') FROM TABLE_NAME;
REPLACE(COLUMN_NAME,'OLD','NEW')
--------------------------------------------------------------------------------
NEWBOY
특정 OLD 값 제거하기
'' 또는 NULL 값으로 리플레이스 하면 해당 OLD 값을 제거할 수 있습니다. (OLDBOY => BOY)
--'' 값으로 바꾸기
SELECT REPLACE (COLUMN_NAME, 'OLD', '') FROM TABLE_NAME;
REPLACE(COLUMN_NAME,'OLD','')
--------------------------------------------------------------------------------
BOY
--NULL 값으로 바꾸기
SELECT REPLACE (COLUMN_NAME, 'OLD', NULL) FROM TABLE_NAME;
REPLACE(COLUMN_NAME,'OLD',NULL)
--------------------------------------------------------------------------------
BOY
오라클 탭 제거하기
오늘의 주제입니다. 탭을 나타내는 문자는 아스키코드 CHR(9)이기에 NULL로 변경하면 탭을 제거할 수 있습니다.
SELECT REPLACE (COLUMN_NAME, CHR (9), NULL) FROM TABLE_NAME;
REPLACE(COLUMN_NAME,CHR(9),NULL)
--------------------------------------------------------------------------------
OLDBOY
오라클 엔터 값 제거하기
리플레이스 함수를 중복하여 사용하는 방법에 대한 예제입니다. 캐리지 리턴(CHR(13))과 라인 피드(CHR(10))를 NULL 값으로 대체해 보겠습니다.
SELECT REPLACE (REPLACE (COLUMN_NAME, CHR (13), NULL), CHR (10), NULL) FROM TABLE_NAME;
REPLACE(REPLACE(COLUMN_NAME,CHR(13),NULL),CHR(10),NULL)
--------------------------------------------------------------------------------
OLDBOY
REGEXP_REPLACE 정규표현식 변경하기
오라클 10g 버전 이상부터 제공하는 정규표현식 함수입니다. O 하나 이상, L 하나 이상, D 문자열을 제거해 보겠습니다.
SELECT REGEXP_REPLACE ('OLDBOY, OLD BOY', 'O+L+D', NULL) FROM DUAL;
REGEXP_RE
---------
BOY, BOY