- CONCAT()
마치... ||
문자열과 문자열을 결합시켜주는 함수이지만, 내부적으로 숫자나 날짜를 문자로 변환해주는 과정이 포함되어 있다
SELECT CONCAT(SYSDATE,'이동욱보고싶다')
FROM DUAL;
--==>> 20231105이동욱보고싶다
- SUBSTR(), SUBSTRB()
문자열을 추출하는 기능을 가진 함수이다. 마치 자바의 SUBSTR() 은 갯수 기반, SUBSTR() 바이트 기반으로 연산되기 때문에 후자를 이용하는 상황에는 신중하게 사용해야 한다.
참고로 저는 바이트 기반으로 해낼 자신이 없어요
SELECT SUBSTR(NAME,1,3)
FROM MY_MAN;
--==>>
/*
이동욱
남궁민
:
:
*/
-- SUBSTR(추출의 대상, 추출을 시작하는 인덱스, 추출할 문자열의 갯수)
-- 이 때 세 번째 파라미터 값은 생략이 가능하며, 생략하면 문자열의 길이 끝까지 추출된다.
- LENGTH(), LENGTHB()
문자열의 길이를 추출하는 함수이다. SUBSTR과 동일하게 전자는 갯수 기반, 후자는 바이트 기반이다.
SELECT LENGTH('HI')
FROM DUAL;
--==>> 2
-- LENGTH(컬럼명 혹은 문자열)
- INSTR()
대상 문자열에서 특정 문자열이 등장하는 위치(인덱스)를 반환한다.
SELECT SELECT 'ORACLE ORAHOME BIORA' "COL1"
, INSTR('ORACLE ORAHOME BIORA', 'ORA', 1, 1) "COL2" -- 1
, INSTR('ORACLE ORAHOME BIORA', 'ORA', 1, 2) "COL3" -- 8
, INSTR('ORACLE ORAHOME BIORA', 'ORA', 2, 1) "COL4" -- 8
, INSTR('ORACLE ORAHOME BIORA', 'ORA', 2) "COL5" -- 8
, INSTR('ORACLE ORAHOME BIORA', 'ORA', 2, 3) "COL6" -- 0
FROM DUAL;
--==>> ORACLE ORAHOME BIORA 1 8 8 8 0
-- INSTR(대상 문자열, 찾을 문자열, 찾기 시작하는 위치, 몇 번째 등장하는 값을 찾을 것인지)
-- 이 때, 세 번째 파라미터 값이 1일 경우(찾을 문자열이 처음으로 등장할 때) 생략이 가능하다.
- REVERSE()
대상 문자열을 거꾸로 반환한다. 단, 한글은 사용이 불가능하다<왜요!!!!!!
SELECT REVERSE('HEY')
FROM DUAL;
--==>> YEH
REVERSE(뒤집을 문자열)
- LPAD(), RPAD()
Byte 를 확보하여 왼쪽부터 문자를 채우는 기능을 가진 함수이다.
SELECT LPAD('ORACLE',10,'*')
-- 처리 순서
/*
10Byte 공간을 확보한다. (두 번째 파라미터)
확보한 공간에 'ORACLE' 문자열을 담는다. (첫 번째 파라미터)
남아있는 Byte 공간을 왼쪽부터 세 번째 파라미터 값으로 채운다. (세 번째 파라미터)
*/
FROM DUAL;
--==>> ****ORACLE
-- LPAD(담을 문자열, 확보할 공간, 남는 공간에 채울 문자)
-- RPAD 는 왼쪽부터 -> 오른쪽부터 만 바뀜
- LTRIM(), RTRIM()
대상 문자열에서 왼쪽(오른쪽)부터 연속적으로 지정 문자열과 같은 글자가 등장할 경우 이를 제거하고 남은 결과값을 반환한다.
SELECT 'ORAORAORAORACLEORACLE'"COL1"
, LTRIM('ORAORAORAORACLEORACLE', 'ORA') "COL2"
, LTRIM('AAAAAAAAAORACLEORACLE', 'ORA') "COL3"
, LTRIM('ORAORAoRAORACLEORACLE', 'ORA') "COL4"
, LTRIM('ORAORA ORAORACLEORACLE', 'ORA') "COL5"
, LTRIM(' ORACLE', ' ') "COL6" -- 왼쪽 공백 제거
, LTRIM(' ORACLE') "COL7" -- 두 번째 파라미터 생략
FROM DUAL;
--==>>
/*
ORAORAORAORACLEORACLE
CLEORACLE
CLEORACLE
oRAORACLEORACLE
ORAORACLEORACLE
ORACLE
ORACLE
*/
-- LTRIM(대상 분자열, 제거할 문자열)
-- 이 때, 제거할 문자열이 공백인 경우 두 번째 파라미터 생략이 가능하다
- TRANSLATE()
문자열을 1:1로 바꿔준다
SELECT TRANSLATE('MY ORACLE SERVER'
, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
, 'abcdefghijklmnopqrstuvwxyz') "COL1"
FROM DUAL;
--==>> my oracle server
SELECT TRANSLATE('010-9322-9643'
, '0123456789'
, '공일이삼사오육칠팔구') "COL1"
FROM DUAL;
--==>> 공일공-구삼이이-구육사삼
-- TRANSLATE(대상 문자열, 이런 문자열이 나온다면, 하나하나 이렇게 바꾸자)
- REPLACE()
대상 문자열에서 지정 문자열을 모두 새로운 문자로 바꿀 수 있다.
SELECT REPLACE('MY ORACLE SERVER ORAHOME', 'ORA', '오라') "COL1"
FROM DUAL;
--==>> MY 오라CLE SERVER 오라HOME
SELECT REPLACE('010-1234-1234','-','')
FROM DUAL;
--==>> 01012341234
-- REPLACE(대상 문자열, 바뀔 문자열, 바꿀 문자열)
'Study📚 > Oracle' 카테고리의 다른 글
Oracle - 프로시저(Procedure), 함수(Function) (0) | 2023.11.19 |
---|---|
Oracle - PL/SQL, IF문, CASE문, 반복문 (0) | 2023.11.19 |
Oracle - INSERT, UPDATE, DELETE, ORDER BY 절 (0) | 2023.11.05 |
Oracle - 허얼마나 남았나... (0) | 2023.10.29 |
Oracle - 날짜 다루기 (0) | 2023.10.29 |