저장 프로시저와 유사한 용도로 사용하지만
다른 점은 함수는 Return 구문을 사용해서 실행 결과를 되돌려 받을 수 있다는 것이다.
결과를 되돌려받기 위해 자료형과 값을 기술해야 한다.
생성 :
create or replace function 저장함수이름
(매개변수 [in/out/inout] 데이터타입,
...)
is
RETURN 데이터타입;
BEGIN
실행문1;
실행문2;
RETURN 돌려줄값
END;
/
실행 :
execute :variable_name := 함수이름(매개변수);
예제로 사원 테이블에서 특정 사원의 급여를 200% 인상하는 저장 함수를 작성해 보았다.
1) 저장 함수 생성
create or replace function cal_bonus(
vempno in emp.empno%type)
RETURN number
is
vsal number(7,2);
BEGIN
select sal into vsal from emp
where empno = vempno;
RETURN vsal * 2;
END;
/
2) 돌려받을 값을 저장할 바인드 변수를 생성한다.
바인드 변수 생성문은 실행해도 콘솔창에 별다른 변화가 없다.
variable var_sal number;
3) 함수 실행
괄호 안에 넣는 사원 번호를 매개로 하여 해당 사원의 급여를 200% 인상한 값을 가져온다.
execute :var_sal := cal_bonus(7788);
5) 값을 출력한다.
사원번호가 7788인 사원의 200% 인상된 급여는 6000이다.
print var_sal;
6) cal_bonus 저장 함수를 select SQL문에 포함하여 실행해 보았다.
select ename, sal, cal_bonus(7788) as "200%인상" from emp where empno=7788;
'오라클 데이터베이스' 카테고리의 다른 글
패키지 (0) | 2022.08.02 |
---|---|
커서 Cursor (0) | 2022.08.02 |
저장 프로시저 - 매개변수의 IN, OUT, INOUT (0) | 2022.08.01 |
저장 프로시저 - 기본형태, 매개변수 (0) | 2022.08.01 |
PL / SQL - 반복문 (0) | 2022.08.01 |