반응형
함수와 프로시저의 차이
함수(Function) | 프로시저(Procedure) | |
데이터베이스에서 비즈니스 로직을 캡슐화하는데 사용 | ||
용도(Use) | SELECT문, JOIN절 또는 하위 쿼리에서 사용 가능 | 명시적으로 호출해야만 실행 가능 |
반환 값(Return Value) | 반드시 값 반환해야 함 | 값을 반환하지 않아도 됨, 대신 SQL문을 통해 여러 결과 집합을 반환하는 데이터를 조작 할 수 있음 |
정의 (Defined) | 주어진 입력을 사용하여 결과를 계산하는 데 사용 | 특정 작업을 순차적으로 수행하는 데 사용 |
입력/출력 파라미터 (In/Out Parameter) | 입력 매개 변수와 반환 출력 매개 변수 허용 | 입력 및 출력 매개 변수 허용 |
호출 (Call) | 함수 내에서 프로시저 호출 불가능, 호출될 때마다 컴파일 진행 |
프로시저 내에서 함수 호출 가능, 한 번 컴파일 이 후 컴파일 없이 여러 번 호출 가능 |
결과 집합 (Result Set) | 단일 값 또는 테이블을 반환 | SELECT문을 사용하여 여러 결과 집합 반환 가능 |
데이터 조작 명령 (DML) | DML문 함수 내 실행 불가 | DML문 프로시저 내 실행 가능 |
SQL 쿼리 (SQL Query) | 쿼리 내에 함수 호출 가능 | 쿼리 내에 프로시저 호출 불가 |
예외 처리 (try-catch) | try-catch 사용 불가 | try-catch 사용 가능 |
명시적 트랜잭션 처리 (Explicit Transaction Handling) |
명시적 트랜잭션 사용 불가 | 명시적 트랜잭션 사용 가능 |
활용 (Suitabillity) | 간단한 계산이나 데이터 변환을 캡슐화 하는데 적합 | 여러 SQL문, 입력 및 출력 매개 변수 또는 오류 처리를 요구하는 더 복잡한 작업에 적합 |
실행 (Execute) | 클라이언트에서 실행 | 서버에서 실행 |
참고
tutorialspoint.com - Difference between Function And Procedure
반응형