[DBP] CH4-2. PL/SQL - Function
🍞 함수
개요
- 개념
- 매개 변수를 받을 수 있고, 반복해서 사용할 수 있는 이름이 있는 PL/SQL 블록
- return 값이 있음
- 용도
- 연속 실행 또는 구현이 복잡한 트랜잭션을 수행하는 PL/SQL 블록을 DB에 저장하기 위해 생성
- 프로시저와의 차이점 및 특징
- 결과값을 return
- 대부분 구성이 프로시저와 유사하지만,
IN
파라미터만 사용 가능 - 리턴될 값의 데이터 타입을 RETURN 문에 선언
- PL/SQL 블록 내에서
RETURN
문을 통해 반드시 값을 반환해야 함
형식
CREATE OR REPLACE
구문을 이용하여 생성IS
로 PL/SQL 블록 시작- LOCAL 변수는
IS
와BEGIN
사이에 선언
CREATE [OR REPLACE] FUNCTION function name
[(argument..)]
RETURN datatype -- 반환되는 값의 datatype
IS
[변수 선언]
BEGIN
[PL/SQL Block]
-- PL/SQL 블록에는 적어도 한 개의 RETURN 문이 있어야 함
END;
🍞 함수의 생성과 실행
- 생성
CREATE OR REPLACE
구문 사용하여 생성- 함수 끝마칠 땐
/
지정
- 실행
- 함수의 리턴값을 저장할 변수 선언
EXECUTE: 변수명 := 함수명
PRINT 변수명
- 함수 에러 검사
SHOW ERROR
- 삭제
DROP FUNCTION 함수명
🍞 함수 예
생성
CREATE OR REPLACE FUNCTION FC_update_sal
(v_empno IN NUMBER)
RETURN NUMBER
IS
v_sal emp.sal%type;
BEGIN
UPDATE emp
SET sal = sal * 1.1
WHERE empno = v_empno;
COMMIT;
SELECT sal
INTO v_sal
FROM emp
WHERE empno = v_empno;
RETURN v_sal;
END;
/
-- 함수가 생성되었습니다.
에러 검사
SHOW ERROR
-- No errors
실행
> VAR salary NUMBER;
> EXECUTE: salary := FC_update_sal(7900);
> PRINT salary;
/*
SALARY
-------
1045
*/