[오라클]/PL-SQL

[PL/SQL] FUNCTION

broship 2020. 12. 24. 19:17

1) FUNCTION 특징

- 반드시 하나의 반환값이 존재해야됨

 

2) 구조:

CREATE OR REPLACE FUNCTION [함수명]([매개변수명] IN [매개변수 타입])
RETURN [반환타입]
IS
[변수명] [변수타입];
BEGIN
[실행 로직]
RETURN [변수명];
END;

/

 

예시: 

밑변과 높이를 입력하면 삼각형 넓이가 반환되는 함수

CREATE OR REPLACE FUNCTION Nulbi(v_mit IN NUMBER, v_nopi IN NUMBER) --외부에서 들어오는 매개변수 
RETURN NUMBER --function은 무조건 return 있어야됨 
IS --이 함수 내에서 사용할 변수 
v_nulbi NUMBER; 
BEGIN --실제 함수 시작 
v_nulbi := (v_mit * v_nopi)/2; --:= 오른쪽의 값을 왼쪽에 대입 
RETURN (v_nulbi); 
END; --함수 종료 
/
--사용 방법
SELECT '삼각형의 넓이는 '||Nulbi(100,20) FROM dual;

결과: 삼각형의 넓이는 1000

 

Q)부서아이디를 입력하여 해당 부서 급여의 평균 급여를 출력하는 function을 작성하시오

CREATE OR REPLACE FUNCTION salary_deptid_func(v_department_id IN employees.department_id%type)
RETURN employees.salary%type
IS
v_avg_salary employees.salary%type;
BEGIN
SELECT avg(salary) INTO v_avg_salary
FROM employees
WHERE department_id=v_department_id;
RETURN (v_avg_salary);
END;
/
SELECT salary_deptid_func(100) FROM dual;

'[오라클] > PL-SQL' 카테고리의 다른 글

[PL/SQL] TRIGGER  (0) 2020.12.25
[PL/SQL] PROCEDURE  (0) 2020.12.24
[PL/SQL] Anonymous Block  (0) 2020.12.24
[PL/SQL] PL/SQL란?  (0) 2020.12.24