단일행함수(문자함수, 와 다중행함수로 나뉜다.
SELECT ENAME, UPPER(ENAME), LOWER(ENAME), INITCAP(ENAME)
FROM EMP;
SELECT *
FROM EMP
WHERE UPPER(ENAME) = UPPER('scott');
SELECT *
FROM EMP
WHERE UPPER(ENAME) LIKE UPPER('%SCOTT%');
SELECT ENAME, LENGTH(ENAME)
FROM EMP;
*예제 2
SELECT ENAME, LENGTH(ENAME)
FROM EMP
WHERE LENGTH(ENAME)>=5;
SELECT LENGTH('한글'), LENGTHB('한글')
FROM DUAL;
//DUAL 테이블은 더미 테이블이다.
SUBSTR(문자열 데이터, 시작위치, 추출길이)
//문자열의 시작 위치부터 추출길이만큼 추출
SUBSTR(문자열 데이터, 시작위치):
//문자열의 시작 위치부터 끝까지 추출
//시작 위치가 음수라면, 뒤에서부터 센다.
SELECT JOB, SUBSTR(JOB, 1, 2), SUBSTR(JOB, 3, 2), SUBSTR(JOB, 5)
FROM EMP;
INSTR([대상 문자열 데이터(필수)],
[위치를 찾으려는 부분 문자(필수)],
[위치 찾기를 시작할 대상 문자열 데이터 위치(선택, 기본값은1)],
[시작 위치에서 찾으려는 문자가 몇 번째인지 지정(선택, 기본값은1)])
//인덱스는 1부터 시작. 띄어쓰기도 인덱스에 포함
SELECT INSTR('HELLO, ORACLE!', 'L') AS INSTR_1,
INSTR('HELLO, ORACLE!', 'L', 5) AS INSTR_2
INSTR('HELLO, ORACLE!', 'L', 2, 2) AS INSTR_3
FROM DUAL;
REPLACE(
[문자열 데이터 또는 열 함수(필수)],
[찾는 문자(필수)],
[대체할 문자(선택/디폴트값은 삭제)]
)
SELECT '010-1234-5678' AS REPLACE_BEFORE,
REPLACE('010-1234-5678','-',' ') AS REPLACE_1,
REPLACE('010-1234-5678','-',) AS REPLACE_2,
LPAD([문자열 데이터 또는 열 이름(필수)], [데이터의 자릿수(필수)], [빈 공간에 채울 문자(선택/ 디폴트값 공백)])
RPAD([문자열 데이터 또는 열 이름(필수)], [데이터의 자릿수(필수)], [빈 공간에 채울 문자(선택/ 디폴트값 공백)])