본문 바로가기

나는개발자다!!/DB

오라클(Oracle)썰 function

Function은 리턴을 무조건 해줘야하고 IN 변수만 받을 수 있다.

그리고 select 절에서 사용이 가능하다.

Function과 비슷한 녀석으로는 Procedure는 로직을 실행만 시키는 녀석이다.

 

사용방법은 다음과 같다.

CREATE OR REPLACE FUNCTION 함수이름

(변수명  IN  변수타입)

RETURN 반환타입

IS

    받을 값 변수명 테이블.칼럼명%type;    

BEGIN

    SELECT 칼럼

    INTO 받을 값 변수명

    FROM

        테이블


RETURN  받을 값 변수명;

END;

/



위의 사용방법을 기초로 작성해 본 예제이다.

CREATE OR REPLACE FUNCTION FC_sel_menuNo

(v_day  IN  varchar2)

RETURN NUMBER

IS

    v_menu_no MENUEXPLAN.MENU_NO%type;    

BEGIN

    SELECT MENU_NO

    INTO v_menu_no

    FROM

        ( 

        SELECT MENU_NO 

        FROM MENUEXPLAN

        ORDER BY dbms_random.value

        )

    WHERE ROWNUM=1;

RETURN  v_menu_no;

END;

/