728x90
- 프로시저: 절차형 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어
호출을 통해 실행되어 미리 저장해 놓은 SQL 작업을 수행
- 프로시저 구성도
- DECLARE: 프로시저의 명칭, 변수, 인수, 데이터 타입을 정의하는 선언부
- BEGIN / END: 프로시저의 시작과 종료 의미
- CONTROL: 조건문, 반복문이 순차적으로 처리됨
- SQL: DML, DCL이 삽입
- EXCEPTION: BEGIN ~ END 안에서 예외가 발생하면 이를 처리하는 방법을 정의
- TRANSACTION: 수행된 데이터 작업들을 DB에 적용할지 취소할지를 결정
- 프로시저 생성
CREATE [OR REPLACE] PROCEDURE 프로시저명(파라미터)
[지역변수 선언]
BEGIN
프로시저 BODY;
END;
// OR REPLACE: 동일한 이름이 존재하면 대체
// 파라미터: 매개변수명 + IN | OUT | INOUT + 자료형
// 지역변수 선언 예약어 IS
// 프로시저 BODY에는 적어도 하나의 SQL문이 있어야 함
CREATE OR REPLACE PROCEDURE emp_change_s(i_사원번호 IN INT)
IS
BEGIN
UPDATE 급여 SET 지급방식='S' WHERE 사원번호=i_사원번호;
EXCEPTION
WHEN PROGRAN_ERROR THEN
ROLLBACK;
COMMIT;
END;
- 프로시저 실행
EXECUTE 프로시저명;
EXEC 프로시저명;
CALL 프로시저명;
- 프로시저 제거
DROP PROCEDURE 프로시저명;
'프로그래밍 언어 > SQL' 카테고리의 다른 글
문자열 관련 함수, Case(조건문) (0) | 2023.09.15 |
---|---|
Subquery, WITH (0) | 2023.09.15 |
DML(insert, delete, update, select, union, join) (0) | 2023.09.15 |
DCL(grant, revoke, commit, rollback, savepoint) (0) | 2023.09.15 |
SQL 개념, DDL(create, alter, drop) (0) | 2023.09.14 |