학원수업_Oracle

USER DEFINED FUNCTION(FUNCTION)

logloglog 2020. 11. 9. 13:21

함수와 프로시저는 서로 비슷하다.

근데 함수는 함수명을 이용한 반환값이 존재한다는 점이 조금 다르다

 

사용형식

CREATE [OR REPLACE] FUNCTION 함수명(
매개변수 IN|OUT|INOUT 타입[:=디폴트 값],
        :
매개변수 IN|OUT|INOUT 타입[:=디폴트 값])
RETURN 타입명 --얜 그냥 타입명 말해주는 리턴이고
IS|AS
변수,상수,커서
BEGIN
비지니스로직 처리문;
RETURN 값|변수;  --반드시 하나이상의 리턴문이 나와야함,, 실제값..함수명이쓰이는 위치에 바로반환
END;

 

예 ) 사원테이블에서 부서번호를 입력받아 해당부서에 속한 직원의 이름을 출력하시오

(함수생성)
CREATE OR REPLACE FUNCTION EMP_FUNC(
P_DEPT IN EMPLOYEES.DEPARTMENT_ID%TYPE,
P_NAME EMPLOYEES.EMP_NAME%TYPE)
RETURN EMPLOYEES.EMP_NAME%TYPE
IS
V_NAME EMPLOYEES.EMP_NAME%TYPE;
BEGIN 
SELECT EMP_NAME INTO V_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID=P_DEPT;
RETURN V_NAME;

(실행)
SELECT EMP_FUNC(DEPARTMENT_ID)
FROM EMPLOYEES
WHERE DEPARTMENT_ID=50;

오류남.. 여러사람이라

이럴때 커서쓰는거임

'학원수업_Oracle' 카테고리의 다른 글

트리거  (0) 2020.11.24
201111 데이터모델링  (0) 2020.11.11
프로시저  (0) 2020.11.09
201105 프로시저  (0) 2020.11.05
201105  (0) 2020.11.05