Oracle Database 강좌/4. PL SQL

PL/SQL 블록 구조: DECLARE, BEGIN, END 키워드 설명

_Blue_Sky_ 2024. 10. 7. 12:59
728x90
728x90

PL/SQL 블록 구조: DECLARE, BEGIN, END 키워드 심층 분석

 

PL/SQL(Procedural Language/SQL)은 오라클 데이터베이스에서 SQL의 기능을 확장하여 복잡한 비즈니스 로직을 구현할 수 있도록 해주는 강력한 프로그래밍 언어입니다. PL/SQL은 블록(Block) 기반의 구조를 가지고 있으며, 이 블록의 기본 구성 요소는 DECLARE, BEGIN, END 키워드입니다. 본 글에서는 이 세 가지 키워드의 역할과 PL/SQL 블록의 전체적인 구조를 상세히 설명하고, 다양한 예시를 통해 이해를 돕고자 합니다.

PL/SQL 블록의 기본 구조

PL/SQL 블록은 다음과 같은 기본적인 구조를 가집니다.

DECLARE
    -- 변수 선언 부분
BEGIN
    -- 실행할 명령어 부분
EXCEPTION
    -- 예외 처리 부분
END;
 
  • DECLARE: 블록 내에서 사용할 변수, 상수, 커서 등을 선언하는 부분입니다. 이 부분은 선택 사항이지만, 일반적으로 변수를 사용하기 위해서는 DECLARE 부분이 필요합니다.
  • BEGIN: 실제로 실행될 PL/SQL 명령어들을 포함하는 부분입니다. 모든 PL/SQL 블록은 BEGIN으로 시작하여 END로 끝나야 합니다.
  • EXCEPTION: 블록 실행 중에 발생할 수 있는 예외(예: 데이터베이스 오류, 제약 조건 위반 등)를 처리하는 부분입니다. 이 부분은 선택 사항이지만, 안정적인 프로그램을 작성하기 위해서는 예외 처리를 하는 것이 좋습니다.

각 키워드의 상세 설명

1. DECLARE

  • 목적: 블록 내에서 사용할 변수, 상수, 커서, 예외 등을 선언합니다.
  • 형식:
    DECLARE
        변수명 데이터형;
        상수명 CONSTANT 데이터형 := 값;
        커서명 CURSOR IS SELECT 문;
        예외명 EXCEPTION;
    
     
  • 예시:
    DECLARE
        v_emp_id NUMBER;
        v_emp_name VARCHAR2(30);
        c_emp CURSOR IS SELECT * FROM employees;
    BEGIN
        -- ...
    END;
    
     
728x90

2. BEGIN

  • 목적: 실행할 PL/SQL 명령어들의 시작을 알립니다.
  • 형식:
    BEGIN
        -- SQL 명령어, PL/SQL 문장
    END;
    
     
  • 예시:
    DECLARE
        -- ...
    BEGIN
        OPEN c_emp;
        LOOP
            FETCH c_emp INTO v_emp_id, v_emp_name;
            EXIT WHEN c_emp%NOTFOUND;
            DBMS_OUTPUT.PUT_LINE('사원번호: ' || v_emp_id || ', 사원명: ' || v_emp_name);
        END LOOP;
        CLOSE c_emp;
    END;
    
     

3. END

  • 목적: PL/SQL 블록의 끝을 나타냅니다.
  • 형식:
    END;
    
     

PL/SQL 블록의 특징

  • 중첩: PL/SQL 블록은 다른 블록 안에 중첩될 수 있습니다.
  • 범위: 블록 내에서 선언된 변수는 해당 블록 내에서만 유효합니다.
  • 익명 블록: 이름이 없는 블록으로, SQL*Plus와 같은 도구에서 직접 실행할 수 있습니다.
  • 명명된 블록: 프로시저나 함수처럼 이름을 가진 블록으로, 반복적으로 사용할 수 있습니다.

결론

PL/SQL 블록은 DECLARE, BEGIN, END 키워드를 사용하여 구성되며, 데이터베이스 작업을 효율적으로 수행하기 위한 기본적인 단위입니다. 이 글에서는 PL/SQL 블록의 구조와 각 키워드의 역할을 상세히 설명하고, 다양한 예시를 통해 이해를 돕고자 하였습니다. PL/SQL 블록에 대한 이해를 바탕으로 더욱 복잡한 PL/SQL 프로그램을 개발할 수 있을 것입니다.

 

728x90
728x90