PL / SQL 함수
I. 소개
오라클 할 수 데이터베이스에 PL / SQL 프로그램을 저장 하고 실행 을 아무 곳 . 이를 저장 프로 시저 또는 함수 라고 합니다 . 프로 시저와 함수를 총칭하여 PL / SQL 서브 루틴 이라고 하며 데이터베이스에 저장되고 입력, 출력 매개 변수 또는 입력 및 출력 매개 변수를 통해 호출자와 정보를 교환하는 PL / SQL 블록 이라고 합니다. 프로 시저와 함수의 유일한 차이점은 함수는 항상 호출자에게 데이터를 반환 하는 반면 프로시 저는 데이터를 반환하지 않는다는 것 입니다.
두 사람은 함수를 만들고 호출합니다.
1 임베디드 함수 생성
(1) 구문은 다음과 같습니다.
기술:
- OR REPLACE는 선택 사항입니다.이를 사용하여 새 함수를 만들거나 충돌없이 동일한 이름의 함수를 바꿀 수 있습니다.
- 함수 이름 뒤에는 IN, OUT 또는 IN OUT 태그가 포함 된 선택적 매개 변수 목록이 있습니다. 매개 변수는 쉼표로 구분됩니다. IN 매개 변수 태그는 함수에 전달 된 값이 함수 실행 중에 변경되지 않음을 나타냅니다 . OUT 태그는 가치 함수에서 계산하고 매개 변수를 통해 호출 문에 전달 나타내는 상기 IN OUT 표시가 함수에 전달 된 값을 변경하고, CALL 명령으로 전달 될 수 있음을 나타낸다 . 표기를 생략하면 매개 변수는 내재적으로 IN입니다.
- 함수는 값을 반환해야하므로 RETURN에는 반환 된 결과의 데이터 유형이 포함됩니다.
CREATE OR REPLACE ] FUNCTION function_name
[ (argment [ {
IN | IN OUT }]Type,
argment [ {
IN | OUT | IN OUT } ] Type ]
[ AUTHID DEFINER | CURRENT_USERR ]
RETURN return_type
{
IS | AS }
<类型 变量的说明>
BEGIN
FUNCTION_body
EXCEPTION
其它语句
END
(2) 사례
① 매개 변수가없는 기능
이 기능을 실행합니다.
② 특정 부서의 급여 합계를 가져옵니다
.이 기능을 실행합니다.
2 내장 함수 호출
함수가 선언 될 때 정의 된 매개 변수를 형식 매개 변수라고하고 응용 프로그램이 호출 될 때 함수에 전달되는 매개 변수를 실제 매개 변수라고합니다. 응용 프로그램이 함수를 호출 할 때 다음 세 가지 방법을 사용하여 매개 변수를 함수에 전달할 수 있습니다.
① 첫 번째 매개 변수 전달 형식을 위치 표기법이라고하며 형식은 다음과 같습니다.
argument_value1[,argum ent_value2 …]
사례 : 급여 부서의 합계 계산
② 두 번째 형식은 이름 매개 변수 전달 표현 형식이라고합니다.
여기서, 인수는 매개 변수 형식이며, 정의 할 매개 변수 이름 형식은 함수 선언과 동일 합니다. 매개 변수는 실제 매개 변수입니다. 이 형식에서는 상황 매개 변수와 실제 매개 변수가 쌍으로 나타나고 이들 간의 관계가 고유하게 결정되므로 매개 변수의 순서를 임의로 정렬 할 수 있습니다.
argument => parameter [,…]
사례 : 특정 부서의 임금 합계를 계산합니다.
③ 세 번째 매개 변수 전송 형식은 혼합 표기법이라고합니다.
즉, 함수 호출시 위치 표기법과 이름 표기법을 모두 사용하여 매개 변수를 함수에 전달합니다
. 이 매개 변수 전달 방법을 사용하면 위치 매개 변수 방법을 나타내도록 매개 변수 이름 앞에 전달되어야하는 법칙을 전달 합니다. 즉, 함수에있는 매개 변수의 수에 관계없이 하나의 매개 변수가 이름 표기법을 사용하는 한 모든 후속 매개 변수는 이름 표기법을 사용해야합니다.
사례 : 특정 부서의 임금 합계 계산
어떤 매개 변수 전송 방법을 채택하더라도 실제 매개 변수와 공식 매개 변수 간의 데이터 전송 방법은 주소 전송 방법과 값 전송 방법 두 가지뿐입니다 . 소위 주소 전송 방법 은 함수를 호출 할 때 실제 매개 변수의 주소 포인터가 형식 매개 변수에 전달되어 형식 매개 변수와 실제 매개 변수가 메모리의 동일한 영역을 가리 키도록하는 것을 의미합니다. 매개 변수 데이터 전송. 이 방법은 참조 방법이라고도합니다. 즉, 형식 매개 변수는 실제 매개 변수 데이터를 참조합니다. 입력 매개 변수는 모두 주소 방식으로 전송되며,
값 전송 방식 은 실제 매개 변수의 주소를 전달하는 대신 실제 매개 변수 데이터를 형식 매개 변수에 복사하는 것을 말합니다 . 기본적으로 출력 매개 변수와 입력 및 출력 매개 변수는 모두 값 전달 방법을 채택합니다 . 함수가 호출되면 ORACLE은 실제 매개 변수 데이터를 입력 및 출력 매개 변수에 복사하고, 함수가 정상 작동을 종료하면 출력 형식 매개 변수와 입력 및 출력 형식 매개 변수 데이터를 실제 매개 변수 변수에 복사합니다.
3 매개 변수 기본값
CREATE OR REPLACE FUNCTION 문에서 함수 매개 변수를 선언 할 때 DEFAULT 키워드를 사용하여 입력 매개 변수에 대한 기본값을 지정할 수 있습니다.
기본값이있는 함수가 생성 된 후 함수가 호출 될 때 기본값이있는 매개 변수에 대해 실제 매개 변수 값이 제공되지 않으면 해당 함수
는 매개 변수의 기본값을 사용합니다. 그러나 호출자가 기본 매개 변수에 대한 실제 매개 변수를 제공하면 함수는 실제 매개 변수 값을 사용합니다. 함수를 생성 할 때 입력 매개 변수에 대해서만 기본값을 설정할 수 있으며 입력 및 출력 매개 변수에 대해서는 설정할 수 없습니다 .
세 가지 삭제 기능
DROP FUNCTION 명령을 사용하여 불필요한 함수를 삭제할 수 있습니다. 구문은 다음과 같습니다.
DROP FUNCTION [user.]Function_name;