TRANSLATE 함수로 정규식같은 효과 내기

2023. 9. 5. 14:12·데이터베이스/oracle

0!1DDDFSDDFSD02@-9874-5612AWE!@

라는 문자열에서 숫자만 추출하고 싶다면, 정규식을 사용하는 것이 가장 편하고, 빨리 생각나는 방법이다.

하지만 낮은 오라클 버전에선 정규식을 사용할 수 없다.

그 때 사용할 수 있는 것이 바로 TRANSLATE함수다.

 

숫자만 추출할 때

SELECT TRANSLATE('0!1DDDFSDDFSD02@-9874-5612AWE!@','0123456789'||'0!1DDDFSDDFSD02@-9874-5612AWE!@' ,'0123456789') AS TRANSLATE FROM DUAL;

TRANSLATE(인자1, 인자2, 인자3) 이라고 할 때, 

인자 1에 있는 숫자만 남기기 => 숫자는 0~9까지

인자 2 인 치환대상에 0123456789+ 인자 1(적용대상)을 적고

인자 3(치환 문자열)에 0~9를 적으면 '0!1DDDFSDDFSD02@-9874-5612AWE!@'의  숫자가 아닌 것들은 다 제거된다.

 

반대로, 문자만 추출에도 이용 가능함

SELECT TRANSLATE('0!1DDDFSDDFSD02@-9874-5612AWE!@','X0123456789' ,'X') AS TRANSLATE FROM DUAL;

저기 들어가는 X는 아무 의미없음, 공백도 가능

인자 1에 x가 있다면 x로 바꾸고, 0123456789의 경우 인자1, 2엔 있지만 3에 없으니까 1에서 삭제될것

=> 인자 1에서 숫자만 삭제, 인자 2에 인자 1에 있는 특문, 영문자들이 없으므로 그대로 그것들만 남게 된다.

SELECT TRANSLATE('0!1DDDFSDDFSD02@-9874-5612AWE!@',' 0123456789' ,' ') AS TRANSLATE FROM DUAL;

 

저작자표시 (새창열림)

'데이터베이스 > oracle' 카테고리의 다른 글

[함수] 1 일 1 함수 : ROLLUP의 쓰임  (0) 2024.11.27
[함수] 1 일 1 함수 : 그룹 내 순위를 매기는 함수(RANK, DENSE_RANK, ROW_NUMBER)  (0) 2024.11.26
토드(Toad)에서 다른 스키마의 테이블로 데이터 복사하기  (0) 2024.03.25
인덱스란?  (1) 2023.08.29
'데이터베이스/oracle' 카테고리의 다른 글
  • [함수] 1 일 1 함수 : ROLLUP의 쓰임
  • [함수] 1 일 1 함수 : 그룹 내 순위를 매기는 함수(RANK, DENSE_RANK, ROW_NUMBER)
  • 토드(Toad)에서 다른 스키마의 테이블로 데이터 복사하기
  • 인덱스란?
니누고
니누고
주니어 개발괴발자
  • 니누고
    진땡이코딩조림
    니누고
  • 전체
    오늘
    어제
    • 분류 전체보기 (93)
      • 편안한코딩생활 (12)
        • 오류 해결 일지 (6)
        • 기타등등 (6)
      • 백 (23)
        • jsp (1)
        • spring boot (7)
        • spring (7)
        • 전자정부프레임워크 (8)
      • 프로젝트 (13)
        • 블로그 제작(중단) (12)
      • 프론트 (3)
        • javascript (3)
      • 데이터베이스 (6)
        • oracle (5)
        • 그 외 (1)
      • cs (6)
        • java (4)
        • cs (1)
        • C (1)
      • 코테 (26)
        • java (25)
        • sql (1)
      • 앱 (0)
        • flutter (0)
        • dart (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    spring
    오블완
    apache
    프로그래머스
    Eclipse
    대문자와소문자
    카카오 블라인드 채용
    스프링의 기본 파싱전략
    전자정부프레임워크
    oracle함수
    컴퓨터용량줄이기
    JPA
    Java
    tomcat
    문자열 정렬하기
    CRUD
    중복된 문자 제거
    Oracle
    배열
    mod_jk.log
    egov
    티스토리챌린지
    2017팁스다운
    배열 회전시키기
    iBatis
    함수
    코딩테스트
    jpa #springboot
    가장 큰 수 찾기
    SpringBoot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
니누고
TRANSLATE 함수로 정규식같은 효과 내기
상단으로

티스토리툴바