오라클 데이터베이스는 다양한 내장 SQL 함수를 제공한다.
- 단일 행 함수 - 단일 행을 입력받아 단일 행을 반환하는 함수
- 집계 함수 - 다중 행을 입력받아 단일 행을 반환하는 함수
- 분석 함수 - 다중 행을 입력받아 다중 행을 반환하는 함수
- 모델 함수 - MODEL 절에서 사용하는 함수
단일 행 함수는 다음과 같이 구분된다. 문자 함수, 숫자 함수, 날짜 함수, 변환 함수, 널 관련 함수, 비교 함수, 인코딩 디코딩 함수, 환경 식별자 함수, 계층 함수, 컬렉션 함수, XML 함, JSON 함수
6.1 문자 함수
- CHR - CHR(n) n에 해당하는 데이터베이스 캐릭터 셋의 문자 값을 반환한다.
- LOWER - char를 소문자로 변경한다.
- UPPER - char를 대문자로 변경한다.
- INITCAP - INITCAP(char) char에 포함된 단어의 첫 글자는 대문자, 나머지는 소문자로 변경한다.
- LPAD - LPAD(expr1, n [,expr2]) expr1의 길이를 좌측으로 n만큼 늘린 후, 늘어난 공간을 expr2로 반복해서 채운다.
- RPAD - RPAD(expr1, n [,expr2]) expr1의 길이를 우측으로 n만큼 늘린 후, 늘어난 공간을 expr2로 반복해서 채운다.
- LTRIM - LTRIM(char [, set]) char의 좌측부터 set에 포함된 문자를 제거한다.
- RTRIM - RTRIM(char [, set]) char의 우측부터 set에 포함된 문자를 제거한다.
TRIM - TRIM([{{LEADING TRAILING BOTH}[trim_character] trim_character} FROM] trim_source) trim_source의 좌측 또는 우측이나 양측에서 trim_character를 제거한다. - SUBSTR - SUBSTR(char, position [, substring_length]) char를 position 위치에서 우측으로 substring_length 만큼 자른다. substring_length 생략시 끝까지 자르고 음수의 경우 끝에서 좌측으로 음수만큼 이동한 위치에서 우측으로 자른다.
- REPLACE - REPLACE(char, search_string [, replacement_string]) char에 포함된 search_string을 replacement_string으로 변경한다.
- TRANSLATE - TRANSLATE(expr, from_string, to_string) expr 문자와 일치하는 from_string 문자를 대응하는 위치의 to_string 문자로 변환한다.
- ASCII - ASCII(char) char의 아스키값을 십진수로 반환한다.
- INSTR - INSTR(string, substring [, position [, occurrence]]) string의 position에서 우측으로 occurrence번째 substring의 시작 위치를 반환한다.
- LENGTH - LENGTH(char) char의 길이를 반환한다.
6.2 숫자 함수
- ABS - 절대 값을 반환한다.
- SIGN - SIGN(n)의 부호를 반환한다. n이 양수면 1, 음수면 -1, 0이면 0
- ROUND(number) - ROUND(n1[,n2]) n1을 n2자리로 반올림한다.
- TRUNC(number) - TRUNC(n1[,n2]) n1을 n2자리로 버린다.
- CEIL - CEIL(n) n보다 크거나 같은 정수의 최소값을 반환한다.
- FLOOR - FLOOR(n) n보다 작거나 같은 정수의 최대값을 반환한다.
- MOD - MOD(n1, n2) n1을 n2로 나눈 나머지를 반환한다. n2가 0이면 n1을 반환한다.
- REMAINDER - REMAINDER(n1, n2) n1을 n2로 나눈 나머지를 반환한다. n2가 0이면 에러가 발생한다.
- POWER - n1을 n2로 거듭제곱한 값을 반환한다.
- BITAND - exp1, exp2의 비트 AND 연산 값을 반환한다.
- WIDTH_BUCKET - WIDTH_BUCKET(expr, min_value, max_value, num_bucket)
6.3 날짜 함수
- SYSDATE - 서버의 날짜 값을 DATE 타입으로 반환한다.
- SYSTIMESTAMP - 소수점 이하 초가 포함된 데이터베이스 서버의 날짜 값을 TIMESTAPM WITH TIME ZONE 타입으로 반환한다.
- NEXT_DAY - date이후 char에 지정된 요일에 해당하는 가장 가까운 날짜 값을 반환한다.
- LAST_DAY - date가 속한 월의 월말일을 반환한다.
- ADD_MONTHS - date에서 integer의 개월 수를 가감한 날짜 값을 반환한다.
- MONTHS_BETWEEN - date1과 date2 사이의 개월 수를 반환한다.
EXTRACT - EXTRACT({YEAR MONTH DAY HOUR MINUTE SECOND} FROM expr) expr에서 날짜 정보를 추출한다. - ROUND - ROUND(date) fmt를 기준으로 date를 반올림한다.
- TRUNC - TRUNC(date) fmt를 기준으로 date를 버린다.
6.4 변환 함수
변환 함수는 값의 데이터 타입을 다른 데이터 타입으로 변환하는 함수다.
- TO_CHAR(number) - TO_CHAR(n[,fmt [, ‘nlsparm’]]) 숫자 값 n을 fmt 형식의 문자 값으로 변환한다.
TO_CHAR(datetime) - TO_CHAP({datetime interval} [, fmt [, ‘nlsparm’]]) datetime, interval 값을 fmt 형식의 문자 값으로 변환한다. - TO_NUMBER - TO_NUMBER(expr [, fmt [, ‘nlsparm’]]) fmt 형식의 expr을 숫자 값으로 변환한다.
- TO_DATE - TO_DATE(char [, fmt [, ‘nlsparm’]]) fmt 형식의 char를 DATE 값으로 변환한다.
- TO_TIMESTAPM - TO_TIMESTAPM(char [, fmt [, ‘nlsparm’]]) fmt 형식의 char를 TIMESTAMP 값으로 변환한다.
- TO_YMINTERVAL - 문자 값을 YEAR TO MONTH 인터벌 값으로 변환한다.
- TO_DSINTERVAL - 문자 값을 DAY TO SECOND 인터벌 값으로 변환한다.
- NUMTOYMINTERVAL - n을 YEAR TO MONTH 인터벌 값으로 변환한다.
- NUMTODSINTERVAL - n을 DAY TO SECOND 인터벌 값으로 변환한다.
- CASE - CASE(expr AS type_name [, fmt [, ‘nlsparam’]]) expr을 type_name에 지정한 데이터 타입으로 변환한다.
- VALIDATE_CONVERSION - VALIDATE_CONVERSION(expr AS type_name [, fmt [, ‘nlsparam’]]) expr을 type_name에 지정한 데이터 타입으로 변환할 수 있으면 1, 없으면 0, expr이 널이면 0을 반환한다.
6.5 널 관련 함수
- NVL - NVL(expr1, expr2) expr1이 null이면 expr2를 반환
- NVL2 - NVL2(expr1, expr2, expr3) expr1이 null이 아니면 expr2, 널이면 expr3를 반환
- COALESCE - null이 아닌 첫 번째 expr을 반환
- NULLIF - NULLIF(expr1, expr2) expr1과 expr2가 다르면 expr1, 같으면 null을 반환
6.6 비교함수
- LEAST - LEAST(expr [, expr]…) expr 중 최소값을 반환, null이 입력되면 null반환
- GREATEST - expr 중 최댓값을 반환, null이 입력되면 null반환
6.7 인고팅 디코딩 함수
- DECODE - DECODE(expr, search, result [, search, result]…[,default]) expr과 search기 일치하면 result, 모두 일치하지 않으면 default를 반환한다.
- DUMP - DUMP(expr [, return_fmt [, start_position [, length]]]) expr의 데이터 타입과 바이트 길이를 return_fmt 형태로 반환한다.
- VSIZE - expr의 바이트 크기를 반환
- ORA_HASH - expr의 해시값을 반환
- STANDARD_HASH - method에 지정한 해시 알고리즘으로 생성한 expr의 해시 값을 반환한다.
6.8 환경 식별자 함수
- USER - 로그인한 사용자의 이름을 반환
- UID - 로그인한 사용자의 ID를 반환
- SYS_GUID - 전역 고유 식별자를 16바이트 RAW 값으로 반환
- USERENV - 현재 세션에 대한 정보를 반환
- SYS_CONTEXT - SYS_CONTEXT(‘namespace’, ‘parameter’ [,length]) - namespace에 속한 parameter 값을 반환