데이터 관리 기술 수업에서 SQL 문에 대해서 배우고 PL/SQL 에 대하여 학습하였다.
'SQL은 아는데 PL/SQL은 대체 뭐지.....?' 에서 출발하게 된 오늘의 포스팅이다.😉
PL/SQL 이란 "Procedural Language extensions to SQL" 의 약자이다.
PL/SQL은 Oracle에서 사용하는 절차영 SQL 언어이다.
기존의 SQL은 선언형 언어로, "무엇을 할지"는 잘 표현하지만 "어떻게 할지"에 대한 표현은 어렵다.
이를 보완하기 위해 조건문, 반복문, 변수 선언, 예외 처리 등을 포함한 절차적 프로그래밍을 가능하게 만든 것이다.
DECLARE : 변수 선언
BEGIN ~ END : 실제 실행 블록을 감싸는 구조
IF, LOOP : 조건문과 반복문
EXCEPTION : 예외 처리
PROCEDURE : 재사용 가능한 코드 블록(함수)
TRIGGER : 테이블의 이벤트에 반응하는 코드
CURSOR : SELECT 결과를 한 행씩 다룰 수 있는 구조
CREATE OR REPLACE TRIGGER trg_salary_check
AFTER INSERT ON employees
FOR EACH ROW
DECLARE
v_msg VARCHAR2(200);
i NUMBER := 1;
BEGIN
IF :NEW.salary >= 5000 THEN
-- 반복문: 메시지를 반복 구성해본 예 (단순한 반복 구조 예시)
v_msg := 'High salary detected for employee ' || :NEW.emp_id || ': ';
WHILE i <= 3 LOOP
v_msg := v_msg || '*';
i := i + 1;
END LOOP;
INSERT INTO salary_log (emp_id, log_message)
VALUES (:NEW.emp_id, v_msg);
END IF;
END;
Oracle을 사용하는 기업 시스템에서는 거의 필수
SQL만으로 부족한 로직을 보완 가능
데이터 분석 + ETL 시스템 개발에 강력한 도구
트랜잭션 제어나 오류 대응에 매우 강력