오라클(Oracle) 영문, 한글, 특수문자, 숫제 제거

오라클(Oracle) 영문, 한글, 특수문자, 숫제 제거

이번 시간은 오라클에서 결괏값에서 영문이나 한글, 숫자 특수문자 등이 조회되었을 때
간단한 정규식을 이용해서 한글만 제거하거나, 영문, 숫자, 특정 특수문자나 전체 문제를 제거 할 수 있는 방법을 알아보겠습니다.
값을 제거할 때 REPLCAE 함수를 사용하는데요. 문제는 값이 다이나믹해서 어떤 값이 올지 모른다는 겁니다.
이런 경우에는 REPLACE 함수를 사용하지 못하고 정규식을 이용해서 문자, 숫자, 한글, 특수문자 등을 추출해서 반값으로 치환해서 제거하는 방법을 사용해야 합니다.

그럼 한글, 영문, 숫자 특수문자 제거하는 방법을 알아보겠습니다.


제거 시 사용되는 정규식 명령어는 REGEXP_REPLACE입니다.
사용 방법은 REGEXP_REPLACE( 값, 정규식, 치환 값 ) 입니다.
값을 제거하는 경우 3번째 치환 값을 제거해도 됩니다.

기본 데이터를 넣었는데요 한글, 숫자, 영문, 특수문자 등의 데이터를 입력했습니다.

오라클(Oracle) 영문, 한글, 특수문자, 숫제 제거


 

 


1. 한글제거 방법입니다.
제거 시 사용하는 정규식은 [가-힝]을 사용하면 됩니다.

/*1. 한글 제거 */
SELECT USER_NAME
      ,REGEXP_REPLACE(USER_NAME,'[가-힣]','') AS 한글제거
  FROM TEST_TABLE

1. 한글제거 방법입니다.


 

 

 

2. 숫자 제거
숫자제거는 0-9까지 지정 후 제거합니다.

/* 숫자 제거=> */
SELECT USER_NAME
      ,REGEXP_REPLACE(USER_NAME,'[0-9]','') as 결과
  FROM TEST_TABLE

2. 숫자 제거


 

 

 

문자 클래스 digit 를 이용할 수도 있습니다.

/* 문자클랙스를 이용한  전체 숫자 제거=> */
SELECT USER_NAME
      ,REGEXP_REPLACE(USER_NAME,'[[:digit:]]','') as 결과
  FROM TEST_TABLE

오라클 문자 클래스 digit


 

3. 영문 제거
영문은 a-zA-Z 대소문자를 모두 지정해줘야 합니다.
a-z만 지정하는 경우 대문자는 제거되지 않습니다.

/* 전체 영문 제거=> */
SELECT USER_NAME
      ,REGEXP_REPLACE(USER_NAME,'[a-zA-Z]','') as 결과
  FROM TEST_TABLE

3. 영문 제거


 

 

 

4.  영문과 숫자가 혼합 제거
이번엔 혼합해서 제거를 해볼텐데요. 문자에 영문과 숫자가 포함되면 모두 제거해보도록 하겠습니다.

영문제거정규식에 a-zA-Z 에 0-9를 추가해주시면 됩니다.
/* 영문+숫자 제거=> */
SELECT USER_NAME
      ,REGEXP_REPLACE(USER_NAME,'[a-zA-Z0-9]','') as 결과
  FROM TEST_TABLE

 

영문과 숫자가 혼합 제거


 

 


문자 클래스 punct를 이용하면 간단하게 제거할 수 있습니다.
/* 영문+숫자 제거=> */
SELECT USER_NAME
      ,REGEXP_REPLACE(USER_NAME,'[[:punct]]','') as 결과
  FROM TEST_TABLE

 

문자 클래스 punct를


 

 

 

5. 특수문제 제거

지정된 특수 문자를 제거하고자 할경우 제거할 특수문자를 모두 기입하시면 됩니다.
순서는 상관없습니다.

/* 지정한 특수문자 제거=> */
SELECT USER_NAME
      ,REGEXP_REPLACE(USER_NAME,'[)(&]','') as 결과
  FROM TEST_TABLE

 

특수문제 제거


 

 

 

특수문자가 많다보니 모든 특수문자를 제거하고자 할경우 입력 클랙스 punct를 사용하면 간단하게 처리할 수 있습니다.
/* 전체 특수문자 제거=> */
SELECT USER_NAME
      ,REGEXP_REPLACE(USER_NAME,'[[:punct:]]','') as 결과
  FROM TEST_TABLE

punct를 사용하면 간단하게 처리

오라클(Oracle) 영문, 한글, 특수문자, 숫제 제거를 알아보았습니다.