[ORACLE] 오라클 SUBSTR 문자열 자르기 사용법

 

오라클 문자열 자르는 방법

substr 개념

substr(문자열, 시작위치)

substr(문자열, 시작위치, 길이)

 

사용법은 간단합니다.

 

자바에서는 substring과 같은 기능입니다. 오라클에서도 함수명이 비슷하네요.

 

1. 함수 인자로는 첫번쨰를 문자열과, 두번째는 시작위치, 세번째는 길이입니다.

 

2. 문자열에 들어갈수 있는 데이터 타입은

CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, NCLOB 입니다.

 

3. 시작위치와 길이에 입력되어야 하는 값은 데이터타입이 NUMBER 타입이거나

정수로 변환이 되는 문자열이여야 합니다.

 

아래 예제로 실제로 어떻게 사용되는지 확인해보겠습니다.

 

1. SUBSTR(문자열,시작위치)

SELECT SUBSTR('안녕하세요ABC', 3) FROM DUAL;

결과 : 하세요ABC

하세요ABC가 출력이 되었네요.

인덱스는 0부터 시작이 아닌 1부터 시작입니다.

그래서 3번째 문구인 [하] 부터 출력이 되었습니다.

 

 

2. SUBSTR(문자열,시작위치,길이) 앞에서부터 자르기

SELECT SUBSTR('안녕하세요ABC', 1, 2) FROM DUAL;

결과 : 안녕

 

길이가 2입니다. 첫번쨰 문자열인 [안] 부터 두번째 문구인 [녕] 까지 출력이 되었습니다.

 

 

3. SUBSTR(문자열,시작위치) 뒤에서부터 자르기

SELECT SUBSTR('안녕하세요ABC', -4) FROM DUAL;

결과 : 요ABC

 

시작위치에 음수를 입력하게되면 뒤에서부터 문자열을 자르게 됩니다.

뒤에서 4번째 위치인 [요] 부터 출력이 되었습니다.

 

 

4. SUBSTR(문자열,시작위치,길이) 뒤에서부터 자르기

SELECT SUBSTR('안녕하세요ABC', -4, 2) FROM DUAL; 

결과 : 요A

 

시작위치는 -4로 뒤에서 네번쨰인 [요] 부터 길이가 2자리인 문자열을 출력합니다.

 

 

5. 특징

소수점을 입력한 경우 자동으로 정수로 변환합니다.

SELECT SUBSTR('안녕하세요ABC', 4, 2.5) FROM DUAL 

소수점 2.5 - > 2로 변경

SELECT SUBSTR('안녕하세요ABC', 4, 2) FROM DUAL 와 동일한 결과 출력

결과 : 요A


길이가 1보다 작으면 null을 리턴합니다. 

SUBSTR(문자열,시작위치,길이)

SELECT SUBSTR('안녕하세요ABC', 3, 0) FROM DUAL;

결과 : NULL


 

SUBSTR과 같은 기능이지만 다른 형태의 문자를 사용하는경우

아래 함수를 사용하시면 됩니다. 문법은 동일합니다.

 

함수 설명
SUBSTRB  문자 대신 바이트 사용
SUBSTRC  유니코드 문자 사용
SUBSTR2  UCS2 코드단위 사용
SUBSTR4  UCS4 코드포인트 사용

 

댓글

Designed by JB FACTORY