SQL에도 절차 지향적인 프로그래밍이 가능하도록 DBMS 벤더별로 절차형 SQL을 제공하고 있다.
PL/SQLT-SQLSQL/PL절차형 SQL을 이용하면 SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성할 수 있다.
Procedure, User Defined Function, Trigger가 있다.| 프로시저 | 트리거 |
|---|---|
| create procedure 문법 사용 | create trigger 문법 사용 |
| execute 명령어로 실행 | 생성 후 자동으로 실행 |
| TCL(commit, rollback) 실행 가능 | TCL(commit, rollback) 실행 불가능 |
| - 데이터의 무결성과 일관성을 위해서 사용 - 데이터베이스에 로그인하는 작업에도 정의 가능 - 특정 테이블에 대해서 insert, update, delete문이 수행되었을 때 호출되도록 정의 |
⭐️ 프로시저 내부에 작성된 절차적 코드는 PL/SQL엔진이 처리하고 일반적인 SQL문장은 SQL실행기가 처리한다.
- PL/SQL 엔진 : 프로그램 문장 처리
- SQL Statement Executor : SQL 문장 처리
⭐️ EXECUTE IMMEDIATE '실행sql'
PL/SQL에서는 동적 SQL 또는 DDL문장을 실행할 때EXECUTE IMMEDIATE를 사용해야 한다.