본문 바로가기

SQL/ORACLE

PL/SQL

 

 

저장함수 생성하기 

 

 

프로시저를 만들 때에는 PROCEDURE라고 기술하지만,

함수를 만들 때에는 FUNCTION이라고 기술한다. 

 

함수는 결과를 되돌려 받기 위해서

함수가 되돌려 받게 되는 자료 형과 되돌려 받을 값을 기술해야 한다. 

 

 

다음은 특별 보너스를 지급하기 위한 저장 함수를 작성해보자. 

보너스는 급여의 200%를 지급한다고 합시다.

 

 ED 다음에 파일이름을 입력하여 새로 생긴 SQL 파일에 다음과 같이 입력하시오.

(파일이름:PROC05.SQL)

 

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 * 200);
END;
/

@PROC05

함수의 결과 값을 저장할 변수를 선언한 후에 아래와 같이 함수 호출한다. 

VARIABLE VAR_RES NUBER;


저장 함수는 호출결과를 얻어오기 위해서

호출 방식에 있어서도 저장 프로시저와 차이점이 있다. 

EXECUTE :VAR_RES := CAL_BONUS(7788);


PRINT VAR_RES

 

'SQL > ORACLE' 카테고리의 다른 글

[SQL] - NVL(MAX(COUL, 0)  (0) 2022.04.01
SQL과 PL/SQL의 차이  (0) 2021.04.08
PL SQL(구구단)  (0) 2021.04.08
ORACLE 관리자 (system/sys) 계정 비밀번호 찾기/변경  (2) 2021.04.07
테이블의 분해 조립 - 조립하기  (0) 2021.04.03