[Database] PL/SQL -1-

지구본욱·2025년 4월 23일

데이터 관리 기술 수업에서 SQL 문에 대해서 배우고 PL/SQL 에 대하여 학습하였다.
'SQL은 아는데 PL/SQL은 대체 뭐지.....?' 에서 출발하게 된 오늘의 포스팅이다.😉

PL/SQL 이란?

PL/SQL 이란 "Procedural Language extensions to SQL" 의 약자이다.
PL/SQL은 Oracle에서 사용하는 절차영 SQL 언어이다.

기존의 SQL은 선언형 언어로, "무엇을 할지"는 잘 표현하지만 "어떻게 할지"에 대한 표현은 어렵다.
이를 보완하기 위해 조건문, 반복문, 변수 선언, 예외 처리 등을 포함한 절차적 프로그래밍을 가능하게 만든 것이다.

PL/SQL 구성 요소

  1. DECLARE : 변수 선언

  2. BEGIN ~ END : 실제 실행 블록을 감싸는 구조

  3. IF, LOOP : 조건문과 반복문

  4. EXCEPTION : 예외 처리

  5. PROCEDURE : 재사용 가능한 코드 블록(함수)

  6. TRIGGER : 테이블의 이벤트에 반응하는 코드

  7. 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;

왜 배워야 할까?

  1. Oracle을 사용하는 기업 시스템에서는 거의 필수

  2. SQL만으로 부족한 로직을 보완 가능

  3. 데이터 분석 + ETL 시스템 개발에 강력한 도구

  4. 트랜잭션 제어나 오류 대응에 매우 강력

profile
어제보다 1cm라도 나아가는 사람 (위로)

0개의 댓글