절차형 SQL을 활용해 특정 기능을 수행할 수 있는 트랜잭션 언어
CREATE [OR REPLACE] PROCEDURE 프로시저명
(파라미터명 [MODE] 데이터타입 ...)
IS
EXCEPTION
WHEN 조건 THEN
SET 명령어;
COMMIT : 하나의 트랜잭션이 정상적으로 종료되고 데이터베이스가 일관성 있는 상태에 있을 때 하나의 트랜잭션이 끝났을 때 사용하는 연산
ROLLBACK : 하나의 트랜잭션이 비정상적으로 종료되어 트랜잭션 원자성이 깨질 경우 처음부터 다시 시작하거나 부분적으로 취소하는 연산
SQL> EXECUTE 프로시저명(파라미터1, 파라미터2, ...);
절차형 SQL을 활용해 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
종료 시 단일 값을 반환하는 것이 특징
CREATE [OR REPLACE] FUNCTION 함수명
(파라미터명 [MODE] 데이터타입 ...)
IS
...
RETURN 데이터타입
SQL> 함수명(파라미터1, 파라미터2, ...)
특정 테이블에 데이터 변경 이벤트가 발생하면 DBMS에서 자동으로 실행하도록 구현된 프로그램
이벤트는 전체 트랜잭션 대상과 각행에 의해 발생되는 경우 모두를 포함할 수 있으며 테이블과 뷰, DB 작업을 대상으로 정의 가능
특정 테이블에 대한 데이터 변경을 시작점으로 설정하고, 그와 관련된 작업을 자동적으로 수행하기 위해 사용
데이터 무결성 유지 및 로그 메시지 출력 등의 별도 처리를 위해 사용
행 트리거 : 데이터 변화가 생길 때마다 실행
문장 트리거 : 트리거에 의해 단 한 번 실행
CREATE [OR REPLACE] TRIGGER 트리거명
순서 유형 ON 테이블명
[FOR EACH ROW]
:OLD.열A
)TCL 사용 불가 : 트랜잭션 제어어(TCL) 사용 시 컴파일 에러 발생
오류 주의 : 트리거 실행 중 오류 발생 시 실행 원인이 된 데이터 작업에도 영향, 특정 테이블에 데이터를 추가한 후 실행되는 트리거에서 오류가 발생한 경우에는 트리거 이후의 작업이 진행되지 않거나 데이터가 추가되지 않음