[ORACLE] 함수와 프로시저의 차이

강지영·2023년 3월 7일
1

SQL

목록 보기
20/20

💡 함수와 프로시저의 차이

프로시저 또한 매개변수를 받아 여러 작업을 수행하여 값을 반환할 수 있고,

함수 또한 매개변수를 받아 여러 작업을 수행하여 값을 반환할 수 있다.

하지만 함수와 프로시저가 똑같은 것은 아니다.


📌의미

프로시저

  • 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이며,
    일련의 작업을 정리한 절차
  • 보통 단독으로 실행해야 할 작업을 위임받았을 때 사용

함수

  • 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합

즉, 함수가 여러 작업을 위한 기능이라면 프로시저는 작업을 정리한 절차
보통 로직을 도와주는 역할이며, 간단한 계산, 수치 등을 나타낼 때 사용


📌매개변수

프로시저

  • 매개변수를 입력,출력,입출력 형식으로 받을 수 있음

함수

  • 매개변수를 입력 형식으로만 받을 수 있음

📌반환값

프로시저

  • 반환값을 가질 수도 있고 가지지 않을 수도 있음

함수

  • 반환값을 반드시 가져야 함

📌쿼리문 내에서 실행가능

프로시저

  • SELECT, WHERE 문 등에서 사용 불가

함수

  • SELECT,WHERE 문 등에서 사용 가능

📌 처리 장소

프로시저

  • 클라이언트(화면)에서 값을 건네받아 서버에서 작업을 한 뒤 클라이언트에게 전달
    즉, 서버에서 실행이 되어 속도면에서 빠른 성능을 보여줌

함수

  • 클라이언트(화면)에서 값을 건네 받고 서버에서 필요한 값을 가져와서 클라이언트에서 작업을 하고 반환
    즉, 클라이언트(화면)에서 실행이 되어 프로시저보단 속도가 느림
profile
Hello World!

0개의 댓글