[SQL] 프로시저/함수 정의, 사용 예제

2023. 12. 7. 11:23SQL

프로시저

DBMS에서 제공하는 프로그래밍 기능으로 개발을 하다보면 여러 개의 칼럼을 조회하거나 여러 테이블에서 데이터 추출을 할 때 하나의 쿼리문으로 생성하면 가독성이 떨어지게 됩니다.

이를 해결하기 위해서 DB에 일련의 작업을 메서드 형식으로 저장하며 이를 프로시저라고 합니다.

프로시저는 어떤 동작을 일괄적으로 처리하는 용도로 사용되며 한번의 요청으로 여러 SQL문을 실행시킬 수 있기 때문에 네트워크 부하를 줄일 수 있습니다.

 

함수

함수는 여러 작업을 위한 기능으로 보통 로직을 도와주는 역할을 하며 계산, 수치 등을 나타낼 때 사용한다.

프로시저의 리턴값은 필수가 아니고 여러개의 리턴값을 가질 수 있는 반면 함수는 반드시 하나의 리턴값을 반드시 가져야 합니다.

 

함수는 프로시저를 포함하고 있는 개념으로 프로시저를 포함한 함수들을 모아 프로그램을 구성하는 것을 절차지향적 프로그래밍이라고 합니다.

 

프로시저 생성 구문

CREATE PROCEDURE [프로시저명](파라미터)
AS
BEGIN
	[쿼리문]
END

 

프로시저 예문

CREATE PROCEDURE IS_COWORKER (
    @NAME			NVARCHAR(50),
    @POSITION		NVARCHAR(50),
    @JOIN_DATE		DATETIME,
    @RETURN_CODE 	VARCHAR(1)		OUTPUT
)
AS
BEGIN
    SET NOCOUNT ON -- 결과 적용된 행의 개수를 표시하지 않도록하는 옵션(서버 부하 감소)
    BEGIN TRY
    	BEGIN TRAN --트랜젝션 시작
        INSERT INTO TBL_EMP ( NAME, POSITION, JOIN_DATE )
        VALUES (@NAME, @POSITION, @JOIN_DATE )
        COMMIT TRAN -- 커밋
        SET @RETURN_CODE = 'S'
    END TRY
    BEGIN CATCH
    	ROLLBACK TRAN --롤백
        SET @RETURN_CODE = 'E'
    END CATCH

 

 

프로시저 실행 구문

EXEC [프로시저명][파라미터]

 

프로시저 실행 예문

EXEC TBL_EMP '박정욱', '책임', '2022-02-01'

 

 

'SQL' 카테고리의 다른 글

[DB]Database(DB),DBMS, SQL 이해와 종류  (1) 2023.11.20