DB/Oracle

[ORACLE] FUNCTION

Plone 2020. 9. 29. 16:13

오라클에서는 메서드(함수)와 비슷한 기능을 가진것이 2가지 존재하는데

PROCEDURE와 FUNCTION입니다

 

PROCEDURE : 반환값이 없음

FUNCTION : 반환값이 있음 

 

함수 생성 방법

//함수 생성
CREATE OR REPLACE FUNCTION FREEBOARD_FUNC(xBOARDNUM IN NUMBER)//매개변수
RETURN VARCHAR2//반환할 타입

IS//선언부
xBOARDID VARCHAR2(30) := ''; 

BEGIN//수행부

//BOARD테이블에서 BOARDID가 FREEBOARD인 행의 갯수를 반환
SELECT BOARDID      //반환 할 값
	INTO xBOARDID   //반환 값을 넣을 변수
    FROM BOARD      //테이블
	WHERE BOARDNUM = xBOARDNUM;  //조건
    
EXCEPTION//예외처리
	WHEN OTHERS THEN
    	  DBMS_OUTPUT.PUT_LINE('예외발생');//화면에 출력, print문과 같은 개념
	
RETURN xBOARDID;//반환
END;//종료

 

위에서 작성한 함수 사용 방법

SELECT * FROM BOARD
    WHERE BOARDID = FREEBOARD_FUNC(10)//boardNum이 10번인 보드의 boardId을 찾는 함수

 

함수 삭제

DROP FUNCTION 함수명

DROP FUNCTION FREEBOARD_FUNC