PL/SQL(8) – Oracle 고유


.

1. 오라클 고유

– Oracle에서 제공하는 기능이 있으므로 이를 사용함으로써 불필요한 수고를 덜 수 있습니다.

– 프로그래밍 언어의 명령어, 기능, 구문, 사용법 등을 알고 이러한 강력한 기능을 사용하는 것도 기술입니다.

– 유형: 문자, 숫자, 날짜, 변환, 문장 및 기타 기능

– 결과를 확인하고 싶다면 DUAL 테이블을 이용하세요.

.

SQL 함수

SQL 함수는 Oracle Database에 내장되어 있으며 다양한 적절한 SQL 문에서 사용할 수 있습니다.

SQL 함수를 PL/SQL로 작성된 사용자 정의 함수와 혼동하지 마십시오.

SQL 함수에서 예상하는 데이터 유형과 다른 데이터 유형의 인수를 사용하여 SQL 함수를 호출하는 경우 Oracle은 SQL 함수를 실행하기 전에 인수를 예상 데이터 유형으로 변환하려고 시도합니다.

null 인수로 SQL 함수를 호출하면 SQL 함수는 자동으로 null을 반환합니다.

이 동작을 반드시 따르지 않는 유일한 SQL 함수는 CONCAT, NVL, REPLACE 및 REGEXP_REPLACE입니다.

.

.

한 줄 함수

단일 행 함수는 쿼리된 테이블 또는 뷰의 각 행에 대해 단일 결과 행을 반환합니다.

이러한 함수는 선택 목록, where 절, start with 및 connection by 절, HAVING 절에 나타날 수 있습니다.

.

.

숫자 함수

숫자 함수는 숫자 입력을 받고 숫자 값을 반환합니다.

NUMBER 값을 반환하는 대부분의 숫자 함수는 소수점 이하 38자리까지 정확합니다.

초월 함수 COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN 및 TANH는 소수점 이하 36자리까지 정확합니다.

초월 함수 ACOS, ASIN, ATAAN 및 ATAN2는 소수점 이하 30자리까지 정확합니다.

.

숫자 함수는 다음과 같습니다.

부분

ACOS

그대로

황갈색

ATAN2

BITAND

천장

코사인

코쉬

경험치

바닥

LN

규약

모드

NANVL

성능

나머지

우수)

징후

SINH

정사각형

탠 껍질

TRUNC(숫자)

WIDTH_BUCKET

.

.

문자를 반환하는 문자 함수

달리 문서화되지 않는 한 문자 값을 반환하는 그리기 함수는 다음 데이터 유형의 값을 반환합니다.

  • 입력 인수가 CHAR 또는 VARCHAR2인 경우 반환되는 값은 VARCHAR2입니다.

  • 입력 인수가 NCHAR 또는 NVARCHAR2인 경우 반환되는 값은 NVARCHAR2입니다.

.

함수가 반환하는 값의 길이는 반환되는 데이터 유형의 최대 길이로 제한됩니다.

  • CHAR 또는 VARCHAR2를 반환하는 함수의 경우 반환 값의 길이가 제한을 초과하면 Oracle Database는 CHAR를 잘라내어 오류 메시지 없이 결과를 반환합니다.

  • CLOB 값을 반환하는 함수의 경우 반환 값의 길이가 제한을 초과하면 Oracle은 오류를 발생시키고 데이터를 반환하지 않습니다.

문자 값을 반환하는 문자 함수는 다음과 같습니다.

기원전

연결

이니트캡

낮추다

LPAD

LTRIM

NLS_INITCAP

NLS_LOWER

NLSSORT

NLS_UPPER

REGEXP_REPLACE

REGEXP_SUBSTR

대리자

RPAD

RTRIM

SOUNDEX

SUBSTR

번역하다

대하다

손질

어퍼, 하이어

.

.

NLS 그리기 기능

NLS 문자 함수는 문자 집합에 대한 정보를 반환합니다.

NLS 그리기 기능:

.

NLS_CHARSET_DECL_LEN

NLS_CHARSET_ID

NLS_CHARSET_NAME

.

숫자 값을 반환하는 그리기 함수

숫자 값을 반환하는 문자 함수는 모든 문자 데이터 유형이 될 수 있습니다.

.

숫자 값을 반환하는 그리기 함수는 다음과 같습니다.

ASCII

인스트

길이

REGEXP_INSTR

datetime 함수

날짜/시간 함수는 날짜(날짜), 타임스탬프(TIMESTAMP, TIME ZONE 및 TIMESTAMP(현지 시간 ZONE 포함)) 및 간격(INTERVAL DAY TO SECOND, Interval YEAR to MONTH) 값에서 작동합니다.

.

일부 데이터 시간 함수는 Oracle DATE 데이터 유형(ADD_MONTHS, CURRENT_DATE, LAST_DAY, NEW_TIME 및 NEXT_DAY)용으로 설계되었습니다.

타임스탬프 값이 인수로 제공되면 Oracle Database는 내부적으로 입력 유형을 DATE 값으로 변환하고 DATE 값을 반환합니다.

예외는 숫자를 반환하는 MONTHS_BETWEEN 함수와 타임 스탬프 또는 간격 값을 전혀 허용하지 않는 ROUND 및 TRUNC 함수입니다.

.

나머지 datatime 함수는 세 가지 데이터 유형(날짜, 타임스탬프 및 간격) 중 하나를 수락하고 이러한 유형의 값을 반환합니다.

.

datetime 함수는 다음과 같습니다.

.

ADD_MONTHS

현재 날짜

현재 타임스탬프

DBTIMEZONE

발췌(날짜/시간)

FROM_TZ

마지막 날

현지 타임 스탬프

MONTHS_BETWEEN

새로운 시간

다음날

죽음의 간격

NUMTOYMININTERVAL

라운드(날짜)

세션 시간대

SYS_EXTRACT_UTC

SYSDATE

시스템타임스탬프

TO_CHAR(날짜/시간)

TO_TIMESTAMP

TO_TIMESTAMP_TZ

TO_DSINTERVAL

TO_YMINTERVAL

TRUNC(날짜)

TZ_OFFSET

.

일반 비교 기능

일반 비교 함수는 값 세트에서 최대값과 최소값을 결정합니다.

.

일반적인 비교 함수는 다음과 같습니다.

.

가장 큰

적어도

변환 기능

변환 함수는 값을 한 데이터 유형에서 다른 데이터 유형으로 변환합니다.

일반적으로 함수 이름의 형식은 데이터 유형에서 데이터 유형으로의 규칙을 따릅니다.

첫 번째 데이터 유형은 입력 데이터 유형입니다.

두 번째 데이터 유형은 출력 데이터 유형입니다.

.

SQL 변환 기능은 다음과 같습니다.

.

ASCIISTR

BIN_TO_NUM

붓다

차트로비드

구성하다

전환하다

분해하다

헥토로우

죽음의 간격

NUMTOYMININTERVAL

RAW HEX

로튼헥스

ROWIDTOCHAR

로위튼차르

SCN_TO_TIMESTAMP

TIMESTAMP_TO_SCN

TO_BINARY_DOUBLE

TO_BINARY_FLOAT

TO_CHAR(문자)

TO_CHAR(날짜/시간)

TO_CHAR(숫자)

TO_CLOB

현재까지

TO_DSINTERVAL

TO_LOB

TO_MULTI_BYTE

TO_NCHAR(문자)

TO_NCHAR(날짜/시간)

TO_NCHAR(숫자)

TO_NCLOB

TO_NUMBER

TO_DSINTERVAL

TO_SINGLE_BYTE

TO_TIMESTAMP

TO_TIMESTAMP_TZ

TO_YMINTERVAL

TO_YMINTERVAL

번역… 사용

UNISTR

대형 개체 기능

대형 개체 함수는 LOB에서 작동합니다.

.

대형 개체 기능은 다음과 같습니다.

B파일 이름

EMPTY_BLOB

EMPTY_CLOB

.

수집 기능

컬렉션 함수는 중첩 테이블 및 연결과 함께 작동합니다.

.

SQL 캡처 기능은 다음과 같습니다.

카디널리티

모으다

성능 멀티셋

POWERMULTISET_BY_CARDINALITY

문장

.

시프트 기능

계층 함수는 계층 경로 정보를 결과 집합에 적용합니다.

.

SYS_CONNECT_BY_PATH

.

데이터 마이닝 기능

데이터 마이닝 기능은 DBMS_DATA_MININING 패키지 또는 Oracle Data Mining Java API를 사용하여 빌드된 모델에서 작동합니다.

.

SQL 데이터 마이닝 기능은 다음과 같습니다.

클러스터_ID

클러스터_확률

클러스터_세트

FEATURE_ID

기능_세트

기능_값

예측

PREDICTION_COST

예측_세부 정보

예측_확률

PREDICT_DISCONTINUED

XML 함수

XML 함수는 XML 문서 또는 조각에서 작동하거나 반환합니다.

출력 형식에 대한 정보를 포함하여 이러한 함수를 사용하여 XML 데이터를 선택하고 쿼리하는 방법에 대한 자세한 내용은 Oracle XML DB Developer’s Guide를 참조하십시오.

.

SQL XML 함수:

.

APPENDCHILDXML

ML 삭제

깊이

발췌(XML)

EXISTS노드

탁월한 가치

KINDXML 삽입

붙여넣기 전 TXML

떨어져 있는

SYS_DBURIGEN

SYS_XMLAGG

SYS_XMLGEN

업데이트XML

XMLAGG

XMLCDATA

XMLCOLATTVAL

XMLCOMMENT

XMLCONCAT

XMLFOREST

XMLPARSE

XMLPI

XML 쿼리

XML루트

XML 시퀀스

직렬화XML

XMLTABLE

XML변환

인코딩 및 디코딩 기능

인코딩 및 디코딩 기능을 사용하면 데이터베이스의 데이터를 검사하고 디코딩할 수 있습니다.

.

풀다

처분하다

ORA_해시

V 사이즈

.

NULL 관련 함수

NULL 관련 함수를 사용하면 null을 더 쉽게 처리할 수 있습니다.

다음 함수는 NULL을 참조합니다.

.

병합

LNNVL

NULLIF

NVL

NVL2

환경 및 식별자 기능

환경 및 식별자 기능은 인스턴스 및 세션에 대한 정보를 제공합니다.

이러한 기능은 다음과 같습니다.

.

SYS_CONTEXT

SYS_GUID

SYS_TYPEID

UID

사용자

USERENV

집계 함수

집계 함수는 단일 행이 아닌 행 그룹을 기반으로 단일 결과 행을 반환합니다.

집계 함수는 선택 목록과 ORDER BY 및 HAVING 절에 나타날 수 있습니다.

Oracle 데이터베이스는 일반적으로 SELECT 문에서 GROUP BY 절과 함께 사용되며 여기서 Oracle 데이터베이스는 쿼리된 테이블 또는 뷰의 행을 그룹으로 나눕니다.

GROUP BY 절을 포함하는 쿼리에서 선택 목록 항목은 집계 함수, GROUP BY 식, 상수 또는 둘 다 포함하는 식일 수 있습니다.

Oracle은 각 행 그룹에 집계 함수를 적용하고 각 그룹에 대해 단일 결과 행을 반환합니다.

.

GROUP BY 절이 생략되면 Oracle은 쿼리된 테이블 또는 뷰의 모든 행에 선택 목록 집계 함수를 적용합니다.

쿼리 중인 테이블 또는 뷰의 개별 행 값이 아닌 집계 함수의 결과를 기반으로 출력에서 ​​그룹을 제거하려면 HAVING 절에서 Aggregate 함수를 사용합니다.

.

“GROUP BY 절 사용: 쿼리 및 하위 쿼리의 GROUP BY 절 및 HAVING 절에 대한 자세한 내용은 예제 및 “HAVING 절”을 참조하십시오.

단일 인수를 사용하는 많은(전부는 아님) 집계 함수는 다음 절을 허용합니다.

.

DISTINCT는 집계 함수가 인수 표현식의 고유한 값만 고려하도록 합니다.

ALL은 집계 함수가 모든 중복을 포함하여 모든 값을 고려하도록 합니다.

.

예를 들어 1, 1, 3의 DISTINCT 평균은 2입니다.

평균은 1.5입니다.

아무것도 지정하지 않으면 기본값은 ALL입니다.

.

계산하기

GROUPING을 제외한 모든 집계 함수는 null을 무시합니다.

집계 함수의 인수에 NVL 함수를 사용하여 null 값을 대체할 수 있습니다.

COUNT는 null을 반환하지 않지만 숫자나 0을 반환합니다.

다른 모든 집계 함수의 경우 데이터 세트에 행이 없거나 집계 함수에 대한 인수로 null이 있는 행만 포함된 경우 함수는 null을 반환합니다.

.

KEEP 키워드 다음에 MIN, MAX, SUM, AVG, COUNT, VARIANCE 또는 STDDEV와 같은 집계 함수를 FIRST 또는 LAST 함수와 함께 사용하여 FIRST로 분류된 행 세트의 값 세트에서 연산할 수 있습니다.

또는 특정 정렬 사양에 대한 LAST 자세한 내용은 FIRST를 참조하십시오.

.

집계 함수는 중첩될 수 있습니다.

예를 들어, 다음 예제는 hr 예제 스키마에서 모든 부서의 최대 급여 평균을 계산합니다.

.

부서 ID로 직원 중에서 선택;

.

평균(최대(급여))

—————-

10925

.

이 계산은 GROUP BY 절(department_id)로 정의된 각 그룹에 대한 내부 집계(MAX(salary))를 평가하고 결과를 다시 집계합니다.

.

집계 함수는 다음과 같습니다.

평균

모으다

보정

CORR_*

계산하기

COVAR_POP

COVAR_SAMP

CUME_DIST

DENSE_RANK

첫 번째

그룹 ID

그룹화

GROUPING_ID

마지막

최대

중앙값

최저한의

PERCENTILE_CONT

PERCENTILE_DISC

PERCENT_RANK

계급

REGR_(선형 회귀) 함수

STATS_BINOMIAL_TEST

STATS_CROSSTAB

STATS_F_TEST

STATS_KS_TEST

STATS_MODE

STATS_MW_TEST

STATS_ONE_WAY_ANOVA

STATS_T_TEST_*

STATS_WSR_TEST

STDDEV

STDDEV_POP

STDDEV_SAMP

VAR_POP

VAR_SAMP

변종

분석 기능

.

분석 함수는 일련의 행을 기반으로 집계된 값을 계산합니다.

각 그룹에 대해 여러 행을 반환한다는 점에서 집계 함수와 다릅니다.

일련의 행을 창이라고 하며 analysis_clause에 의해 정의됩니다.

슬라이딩 행 창은 각 행에 대해 정의됩니다.

창은 현재 행에 대한 계산을 수행하는 데 사용되는 행 범위를 결정합니다.

창 크기는 물리적 행 수 또는 시간과 같은 논리적 간격을 기반으로 할 수 있습니다.

.

분석 함수는 쿼리에서 마지막 ORDER BY 절 다음에 수행되는 최종 작업 집합입니다.

모든 조인과 모든 LOCATION, GROUP BY 및 HAVING 절은 분석 함수가 처리되기 전에 완료됩니다.

따라서 분석 함수는 선택 목록 또는 ORDER BY 절에만 나타날 수 있습니다.

.

분석 함수는 일반적으로 누적, 이동, 중심 및 보고서 집계를 계산하는 데 사용됩니다.

평균*

수정 *

COVAR_POP *

COVAR_SAMP *

계산하기 *

CUME_DIST

DENSE_RANK

첫 번째

FIRST_VALUE *

지연

마지막

LAST_VALUE *

이끌 기 위해

최대 *

최소 *

NTILE

PERCENT_RANK

PERCENTILE_CONT

PERCENTILE_DISC

계급

RELATIONSHIP_TO_REPORT

REGR_(선형 회귀) 함수 *

라인 번호

STDDEV *

STDDEV_POP *

STDDEV_SAMP *

총 *

VAR_POP *

VAR_SAMP *

변종 *