함수와 프로시저는 서로 비슷하다.
근데 함수는 함수명을 이용한 반환값이 존재한다는 점이 조금 다르다
사용형식
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 |