반응형
반응형
Procedure와 Function의 차이
- Procedure는 로직을 기술하여 해당 업무 처리를 직접 하는 용도로 많이 사용되고, Function은 로직을 도와주는 목적으로 사용됩니다.
- Procedure은 select, where문 등에서 사용이 불가능 하지만 Function은 사용 가능합니다.
- Procedure은 클라이언트에서 값을 건네받아 서버에서 작업을 한 뒤 클라이언트에게 전달하지만, Function은 클라이언트에서 값을 건네 받고 서버에서 필요한 값을 가져와서 클라이언트에서 작업을 하고 반환합니다.
Procedure이란?
일련의 쿼리를 하나의 함수로 실행할 수 있는 쿼리의 집합입니다. 예를 들어 네이버에서 상품을 구매하기 위해서 로그인, 상품 선택, 상품 구매 등 여러 프로세스를 한 번의 procedure에 담아 실행 할 수 있습니다.
잠정
- 하나의 요청으로 여러 SQL문을 실행할 수 있습니다.
- 서버에서 실행되기 때문에 속도가 빠릅니다.
- 리턴값이 있을 수도, 없을 수도 있습니다.
- 여러개의 리턴값을 보낼 수 있습니다.
단점
- 재사용성이 좋지 않습니다.
코드
CREATE OR REPLACE PROCEDURE 프로시저 이름 (
매개변수명1 [ IN || OUT || INOUT ] 데이터타입
, 매개변수명2 [ IN || OUT || INOUT ] 데이터타입 ...
) IS||AS 변수, 상수 등 선언 ( 선언부 )
BEGIN 실행 문장 ( 실행부 )
EXCEPTION 문장 //필수아님
END ;
호출 방법
CALL 프로시저명(IN파라미터명, @OUT파라미터명)
EXECUTE 프로시저명(IN파라미터명, @OUT파라미터명)
Function이란?
각 프로세스를 수행하기 위해 필요한 기능들입니다.
Function은 리턴값이 필수입니다.
담점
- 클라이언트에서 실행되기 때문에 프로시저보다는 느리다
코드
CREATE OR REPLACE FUNCTION 함수 이름
( 매개변수명1 매개변수1타입,
매개변수명2 매개변수2타입 ... )
RETURN 데이터타입
IS||AS
변수, 상수 등 선언 ( 선언부 )
BEGIN
실행 문장 ( 실행부 )
RETURN 반환값 //필수
EXCEPTION 문장 //필수아님
END ;
호출 방법
SELECT 함수명(IN 파라미터명) FROM DUAL;
참조
https://velog.io/@devjooj/Mysql-Function과-Procedure-차이
https://fomaios.tistory.com/entry/Oracle-함수Function와-프로시저Procedure-차이
반응형
'DB' 카테고리의 다른 글
Clustered vs NonClustered (index 개념) (0) | 2023.05.31 |
---|