* 정의
프로시저(procedure)는 절차영 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어로 호출을 토해 실행되어 미리 저장해 놓은 SQL 작업을 수행한다.
프로시저를 만들어 데이터베이스에 저장하면 여러 프로그램에서 호출하여 사용할 수 있으며 데이터베이스에 저장되어 수행되기 때문에 스토어드 프로시저(stored procedure)라고도 불린다. 시스템의 일일 마감 작업, 일괄(Batch) 작업 등에 주로 사용된다.
* 동작 방식
- 구성
@ DECLARE : 프로시저의 명칭 변수, 인수, 데이터 타입을 정의하는 선언부
@ BEGIN / END : 프로시저의 시작과 종료를 의미
@ CONTROL : 조건문이나 반복문이 삽입되어 순차적으로 처리
@ SQL : DML, DCL로 데이터 관리를 위한 조회, 추가, 수정 삭제 작업을 수행
@ EXCEPTION : BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리하는 방법을 정의
@ TRANSACTION : 수행된 데티어 작업들을 DB에 COMMIT할지 ROLLBACK할지 결정하는 처리부
- 생성
CREATE [OR REPLACE] PROCEDURE 프로시저명(파라미터)
[지역변수 선언]
BEGIN
프로시저 BODY
END;
@ OR REPLACE : 사용시 동일한 프로시저 이름이 이미 존재하는 경우 대체
@ 파라미터 : 매개변수명 + IN/OUT/INOUT + 자료형으로 구성
- IN : 호출 프로그램이 프로시저에게 값을 전달할 때
- OUT : 프로시저가 호출 프로그램에게 값을 반환할 때
- INOUT : 호출 프로그램이 프로시저에게 값을 전달하고 프로시저 실행 후 다시 호출 프로그램에게 반환할 때
@ 프로시저 BODY : 프로시저 코드를 기록하는 부분으로 BEGIN에서 END까지이다. 이 사이에 적어도 하나의 SQL문이 존재하여야 한다.
- 실행
EXECUTE 프로시저명;
EXEC 프로시저명;
CALL 프로시저명;
- 제거
DROP PROCEDURE 프로시저명;
'DB' 카테고리의 다른 글
트랜잭션 (0) | 2022.02.27 |
---|---|
정규화 (0) | 2022.02.27 |
데이터베이스 키의 개념과 종류 (0) | 2022.02.27 |
SQL (0) | 2021.11.10 |