저장 프로시저와 유사한 용도로 사용하지만 

다른 점은 함수는 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

+ Recent posts