[Oracle] 12.문자열 함수


문자열 함수



문자열 함수는 다음과 같이 있습니다.


image



대소문자 변환 함수



문자열을 모두 대문자로 변환하고 싶으면 upper,

소문자로 변환하고 싶으면 lower,

첫 글자만 대문자로 변환하고 싶으면 initcap을 이용합니다.


SELECT
    'Welcome to Oracle',
    upper('Welcome to Oracle'), 
    lower('Welcome to Oracle'), 
    initcap('WELCOME TO ORACLE') 
FROM
    dual;




image



문자열 길이 구하는 함수: LENGTH



문자열의 길이를 구하는 함수는 length입니다!


SELECT
    length('Oracle'),
    length('오라클')
FROM
    dual;




image



문자열이 몇 바이트인지 구하려면 lengthb를 이용합니다!


SELECT
    lengthb('Oracle'),
    lengthb('오라클')
FROM
    dual;




image



위의 결과에서 보듯이 영문자는 1바이트, 한글은 3바이트를 차지합니다!

문자열 일부를 추출: SUBSTR



문자열 일부를 추출할 때는 substr(문자열,시작위치,추출할 개수)를 이용합니다.


-- SUBSTR(대상, 시작위치, 추출할 개수) --

SELECT
    substr('Welcome to Oracle',4,3)
FROM
    dual;




image



특정 문자의 위치를 구하는 함수: INSTR



특정 문자가 어디있는지 보여주는 함수는 instr 입니다!


-- INSTR(대상, 찾을 글자, 시작 위치, 몇_번째_발견) --

SELECT
    instr('Welcome to Oracle','o')
FROM
    dual;




image



빈 공간을 특정 기호로 채우는 LPAD/RPAD 함수



몇 자리의 공간을 확보 후 사용되지 않는 공간을 특정 기호로 채우는 함수는

LPAD 함수와 RPAD 함수입니다.

예를 들어 주민번호 111129-345678 에서 뒷자리는 *로 채우고 싶은 경우에

rpad 함수를 이용합니다.


-- 14자리 확보후 왼쪽부터 데이터를 채운 후 나머지는 *로 채움 --

SELECT
    rpad(substr('111129-345678',1,7),14,'*') 
FROM
    dual;




image



rpad라고 해서 오른쪽부터 데이터를 채우는 것이 아닙니다!

rpad에서 r은 남아있는 공간이 오른쪽이라는 것입니다!