[Oracle] 12.문자열 함수
문자열 함수
문자열 함수는 다음과 같이 있습니다.
대소문자 변환 함수
문자열을 모두 대문자로 변환하고 싶으면 upper,
소문자로 변환하고 싶으면 lower,
첫 글자만 대문자로 변환하고 싶으면 initcap을 이용합니다.
SELECT
'Welcome to Oracle',
upper('Welcome to Oracle'),
lower('Welcome to Oracle'),
initcap('WELCOME TO ORACLE')
FROM
dual;
문자열 길이 구하는 함수: LENGTH
문자열의 길이를 구하는 함수는 length입니다!
SELECT
length('Oracle'),
length('오라클')
FROM
dual;
문자열이 몇 바이트인지 구하려면 lengthb를 이용합니다!
SELECT
lengthb('Oracle'),
lengthb('오라클')
FROM
dual;
위의 결과에서 보듯이 영문자는 1바이트, 한글은 3바이트를 차지합니다!
문자열 일부를 추출: SUBSTR
문자열 일부를 추출할 때는 substr(문자열,시작위치,추출할 개수)를 이용합니다.
-- SUBSTR(대상, 시작위치, 추출할 개수) --
SELECT
substr('Welcome to Oracle',4,3)
FROM
dual;
특정 문자의 위치를 구하는 함수: INSTR
특정 문자가 어디있는지 보여주는 함수는 instr 입니다!
-- INSTR(대상, 찾을 글자, 시작 위치, 몇_번째_발견) --
SELECT
instr('Welcome to Oracle','o')
FROM
dual;
빈 공간을 특정 기호로 채우는 LPAD/RPAD 함수
몇 자리의 공간을 확보 후 사용되지 않는 공간을 특정 기호로 채우는 함수는
LPAD 함수와 RPAD 함수입니다.
예를 들어 주민번호 111129-345678 에서 뒷자리는 *로 채우고 싶은 경우에
rpad 함수를 이용합니다.
-- 14자리 확보후 왼쪽부터 데이터를 채운 후 나머지는 *로 채움 --
SELECT
rpad(substr('111129-345678',1,7),14,'*')
FROM
dual;
rpad라고 해서 오른쪽부터 데이터를 채우는 것이 아닙니다!
rpad에서 r은 남아있는 공간이 오른쪽이라는 것입니다!