개발/K-DigitalTraining 수강중

Oracle DB ( 오라클 함수 - 문자열 )

배타브 2023. 3. 20. 17:51
728x90
반응형
-- 오라클 함수
-- 오라클에서 기본으로 제공하는 내장 함수 , 사용자가 필요에 의해 직접 정의한 사용자 정의 함수

-- 문자열 함수
-- 1.UPPER , LOWER , INITCAP

--UPPER 는 모두 대분자 , LOWER는 모두 소문자 , INITCAP 첫글자만 대문자
SELECT 
    ENAME , 
    UPPER(ENAME) , 
    LOWER(ENAME) , 
    INITCAP(ENAME)
FROM 
    EMP;

--2.LENGTH : 문자열 길이
SELECT 
    ENAME, LENGTH(ENAME)
FROM 
    EMP;
    
-- 사원 이름의 길이가 5 이상인 사원 조회
SELECT ENAME
FROM EMP
WHERE LENGTH(ENAME) >= 5;

--한글일 때
SELECT LENGTH('훈민정음')
FROM DUAL; -- SYS가 소유하는 테이블 ( 임시 연산이나 함수의 결과 값 확인 용도 ) 

--LENGTHB  BYTE단위로 세어줌
SELECT LENGTHB('한글')
FROM DUAL;

--3. SUBSTR(문자열 데이터 , 시작위치 , 추출길이) : 추출길이 생략 가능
--     문자열 일부 추출
SELECT JOB, SUBSTR(JOB, -3) 
FROM EMP ;

-- ENAME 출력 세번째 글자부터 출력
SELECT SUBSTR(ENAME,3)
FROM EMP;

--4.INSTR : 문자열 데이터 안에서 특정 문자 위치 찾기
--INSTR(대상문자열 , 위치를 찾으려는 문자열 , 대상문자열에서 찾기를 시작할 위치(선택사항),시작위치에서 찾으려는 문자가 몇번째인지 지정)

SELECT 
    INSTR( 'HELLO, ORACLE' , 'L') AS INSTR_1 , 
    INSTR('HELLO, ORACLE', 'L', 2 , 2) AS INSTR_2
FROM DUAL;

--5. REPLACE : 특정 문자를 다른 문자로 변경
-- REPLACE(문자열데이터 , 찾는문자 , 변경문자 )
SELECT '010-1234-5678' AS 변경전 , REPLACE('010-1234-5678' , '-', ' ')AS 변경후
FROM DUAL;

SELECT ' 이것이 ORACLE 이다 ' AS 변경전 , REPLACE(' 이것이 ORACLE 이다' , '이것이', 'THIS IS') AS 변경후
FROM DUAL;

-- 6.CONCAT : 두 문자열 데이터 합치기
SELECT CONCAT(EMPNO , ENAME)
FROM EMP;

-- || : 문자열 연결 연산자


-- 7. TRIM , LTRIM , RTRIM : 공백 포함 특정 문자 제거
728x90
반응형