Oracle - 문자열 함수

오라클에서 자주 사용하는 문자열 함수를 정리했다.

목차


lower

대문자를 소문자로 변환하는 문자열 함수이다.

emp 테이블에 있는 사원이름을 전부 소문자화하는 쿼리이다.


upper

소문자를 대문자로 변환하는 문자열 함수이다.

대문자와 소문자를 각각 소문자와 대문자로 역 변환해서 조회하는 쿼리이다.


initcap

첫 글자만 대문자하고 나머지는 소문자하는 문자열 함수이다.

사원이름의 첫글자는 대문자로, 나머지 글자를 소문자로 조회하는 쿼리이다.


concat

문자열을 서로 더해주는 문자열 함수이다.

1
2
SELECT concat('CEO is', 'King')
FROM dual

concat 함수의 파라미터는 2개로 제한되기 때문에 더 많은 문자열을 더하기 위해서는 아래처럼 작성해야 한다.

1
2
SELECT ename, job, concat(concat(concat(ename,'의 직무는 '), job), '입니다.')
FROM emp

문자열을 더하는 함수는 ||도 있다.

1
2
SELECT ename, job, ename||'의 직무는'||job||'입니다.'
FROM emp;

length

문자열의 길이를 출력하는 문자열 함수이다.

legnthb 함수는 바이트 단위로 문자열의 길이를 출력하는 문자열 함수이다.

SQL Plus에서 한글 문자열을 입력하니 에러가 발생해서 SQL Developer에서 조회해보았다.


substr

문자열을 잘라내는 함수이다.

잘라내길 원하는 문자열의 범위를 지정할 수 있다.
0번째 인덱스부터 5번째 인덱스의 데이터까지 잘라서 조회하고, 뒤에서 3번째 인덱스까지를 조회하는 쿼리이다.


instr

찾고자하는 문자열의 인덱스를 조회하는 함수이다.


몇번째 인덱스부터 몇번째로 등장하는 문자를 찾을수도 있다.
참고로 아래의 문자열에서 인덱스 1의 문자는 ‘H’이다.

1
SELECT instr('HELLO BRO', 'O', 6, 1) FROM dual;

‘HELLO BRO’ 문자열에서 6번째 인덱스부터 문자열 ‘O’가 1번째로 등장하는 문자열의 인덱스를 조회하는 쿼리이다. 해당 문자열에서 O는 두번 등장하는데, 6번째 인덱스 뒤로는 마지막 O 하나밖에 없기 때문에 조회되는 인덱스는 9가 될 것이다.


ltrim, rtrim

왼쪽 공백, 오른쪽 공백을 삭제하고 문자열을 조회하는 함수.


공백을 삭제할 수도 있지만, 아래의 경우처럼 특정 문자열을 제거할 수도 있다. 이때 입력할 수 있는 인자값(Argument)은 한 개로 제한된다. (=2개의 문자열을 제거할 수 없다.)


replace

문자열을 다른 문자열로 대체해서 조회하는 함수.

'Jack and Jue' 라는 문자열에서 JBl 로 바꿈으로서 Black and Blue 라는 문자열로 변경했다.