PL/SQL이란?
**PL/SQL(Procedural Language/SQL)**은 Oracle에서 사용하는 SQL의 확장 프로그래밍 언어입니다.
일반적인 SQL 문장에 조건문, 반복문, 변수 선언 등을 추가하여 절차적(Procedural) 프로그래밍을 가능하게 합니다.
PL/SQL 블록 구조
DECLARE
-- 변수 선언 (선택 사항)
변수명 데이터타입;
BEGIN
-- 실행부 (필수)
-- SQL 및 로직 작성
변수명 := 값;
DBMS_OUTPUT.PUT_LINE('출력할 메시지');
EXCEPTION
-- 예외 처리부 (선택 사항)
WHEN 예외명 THEN
-- 오류 처리 로직
END;
/
예시
DECLARE
v_name VARCHAR2(20);
BEGIN
v_name := '홍길동';
DBMS_OUTPUT.PUT_LINE('안녕하세요, ' || v_name || '님!');
END;
/
출력 결과:
안녕하세요, 홍길동님!
자주 쓰이는 기능
- 변수 선언
- 조건문 (IF, CASE)
- 반복문 (LOOP, WHILE, FOR)
- 예외 처리 (EXCEPTION)
- 커서(CURSOR): 여러 행을 처리할 때 사용
- 프로시저 및 함수 생성
PL/SQL의 장점
장점 설명
1. 절차적 언어 지원 | 조건문, 반복문, 변수 등을 사용하여 복잡한 로직 구현이 가능 |
2. 높은 성능 | SQL을 반복적으로 호출하지 않고, 한번에 처리함으로써 네트워크 부담 감소 및 실행 속도 향상 |
3. 모듈화 가능 | 프로시저, 함수, 패키지로 코드 재사용 및 유지보수가 쉬움 |
4. 예외 처리 가능 | 오류 발생 시 적절한 처리를 통해 프로그램 안정성 향상 |
5. 데이터베이스 내 실행 | 로직이 데이터베이스 내부에서 실행되므로 보안과 응답 속도 측면에서 유리 |
6. 트리거 지원 | 데이터 변경 이벤트에 반응하는 자동화 작업 설정 가능 |
PL/SQL의 단점
단점 설명
1. Oracle 전용 (DB2 SQL PL 사용) | Oracle DB에서만 사용 가능, 다른 DBMS(MySQL, PostgreSQL 등)에서는 호환되지 않음 |
2. 복잡한 디버깅 | 일반 프로그래밍 언어에 비해 디버깅이 불편하고 도구 지원이 제한적임 |
3. UI 기능 없음 | UI나 클라이언트 기능이 없기 때문에 다른 언어와 결합해 사용해야 함 |
4. 러닝 커브 | SQL만 사용하던 개발자에게는 절차적 개념이 익숙하지 않을 수 있음 |
5. 유지보수 어려움 (대형 시스템) | 로직이 지나치게 데이터베이스에 집중되면 업무 변경 시 유지보수가 어려워질 수 있음 |
** PL/SQL은 Oracle 전용 언어이기 때문에, IBM DB2에서는 직접 사용할 수 없습니다.
하지만 DB2에서도 PL/SQL과 비슷한 기능을 하는 **SQL PL(SQL Procedural Language)**이라는 절차적 언어를 지원합니다.
요약
구분 내용
장점 | 성능 향상, 복잡한 로직 구현, 재사용성, 예외처리, 보안성 |
단점 | Oracle 전용, 디버깅 어려움, UI 없음, 러닝 커브, 복잡한 시스템의 유지보수 부담 |
'[DB]SQL실무' 카테고리의 다른 글
[SQL]DB2에서 테이블의 용량 정보와 컬럼 주석(코멘트)을 확인하는 쿼리 (0) | 2025.05.23 |
---|---|
[DB]IBM DB2 SQL PL(SQL Procedural Language) (0) | 2025.05.14 |
[기타]SQLSTATE=22001 오류 (0) | 2025.04.15 |
[SQL]WITH 절의 장점 VS 단점 (0) | 2025.03.18 |
[SQL]WITH 절 (1) | 2025.03.18 |