본문 바로가기
Be Smart/SQL

[Oracle] 오라클 PL/SQL 구조

by 반월하 2024. 6. 18.
728x90

 

PL/SQL 구조

PL/SQL은 데이터베이스 관련 작업을 수행하는 명령어와 실행에 필요한 요소를 정의하는 명령어들로 구성됩니다. 이 명령어들을 모아둔 기본 단위가 블록(block)입니다.

블록의 구성 키워드는 다음과 같습니다:

  • DECLARE(선언부): 실행에 사용될 변수, 상수, 커서 등을 선언하는 부분 (선택)
  • BEGIN(실행부): 조건문, 반복문, SELECT, DML, 함수 등을 정의하는 부분 (필수)
  • EXCEPTION(예외 처리부): 실행 도중 발생하는 오류를 해결하는 문장을 기술하는 부분 (선택)

작성된 PL/SQL 블록은 END 키워드로 종료를 명시합니다. 기본 형식은 다음과 같습니다:

DECLARE
    [ 실행에 필요한 여러 요소 선언 ];
BEGIN
    [ 작업을 위해 실제 실행하는 명령어 ];
EXCEPTION
    [ PL/SQL 수행 도중 발생하는 오류 처리 ];
END;

선언부와 예외 처리부는 생략 가능하지만 실행부는 반드시 존재해야 합니다. 필요에 따라 블록 안에 다른 블록을 포함하는 중첩 블록(nested block)도 가능합니다.

HELLO, PL/SQL 출력하기

PL/SQL 실행 결과를 화면에 출력하려면 SERVEROUTPUT 환경 변수 값을 ON으로 변경해야 합니다. 오라클에서 기본 제공하는 DBMS_OUTPUT 패키지의 PUT_LINE을 사용하여 화면에 출력을 할 수 있습니다.

BEGIN
    DBMS_OUTPUT.PUT_LINE('HELLO, PL/SQL');
END;
/

PL/SQL 변수와 상수

변수 선언과 값 대입하기

변수는 데이터를 일시적으로 저장하는 요소입니다. 변수의 이름과 자료형을 지정하여 선언부(DECLARE)에 작성하며, 실행부(BEGIN)에서 활용합니다.

DECLARE
    변수이름 자료형 := 값;
BEGIN
    DBMS_OUTPUT.PUT_LINE(변수이름);
END;
/

상수 정의하기

상수는 한 번 저장된 값이 프로그램이 종료될 때까지 유지됩니다. 상수는 CONSTANT 키워드를 사용하여 선언합니다.

DECLARE
    상수이름 CONSTANT 자료형 := 값;
BEGIN
    DBMS_OUTPUT.PUT_LINE(상수이름);
END;
/

변수의 기본값 지정하기

DEFAULT 키워드를 사용하여 변수에 기본값을 지정할 수 있습니다.

DECLARE
    변수이름 자료형 DEFAULT 값;
BEGIN
    DBMS_OUTPUT.PUT_LINE(변수이름);
END;
/

변수에 NULL 값 저장 막기

특정 변수에 NULL이 저장되지 않게 하려면 NOT NULL 키워드를 사용합니다.

DECLARE
    변수이름 NOT NULL 자료형 := 값;
BEGIN
    DBMS_OUTPUT.PUT_LINE(변수이름);
END;
/

변수의 자료형

변수에 저장할 데이터의 종류를 특정짓기 위해 사용하는 자료형은 크게 스칼라(scalar), 복합(composite), 참조(reference), LOB(Large Object)로 구분됩니다.

스칼라형

스칼라형은 단일 값을 의미하며, 숫자, 문자열, 날짜, 논리 데이터로 나뉩니다.

  • 숫자: NUMBER
  • 문자열: CHAR, VARCHAR2
  • 날짜: DATE
  • 논리 데이터: BOOLEAN

참조형

참조형은 데이터베이스에 존재하는 특정 테이블 열의 자료형이나 하나의 행 구조를 참조합니다. 열을 참조할 때는 %TYPE, 행을 참조할 때는 %ROWTYPE을 사용합니다.

DECLARE
    변수이름 테이블이름.열이름%TYPE;
BEGIN
    DBMS_OUTPUT.PUT_LINE(변수이름);
END;
/
DECLARE
    변수이름 테이블이름%ROWTYPE;
BEGIN
    SELECT 열이름 INTO 변수이름 FROM 테이블이름 WHERE 조건;
    DBMS_OUTPUT.PUT_LINE(변수이름.필드이름);
END;
/

복합형과 LOB형

복합형은 사용자 정의 자료형으로, 여러 종류 및 개수의 데이터를 저장할 수 있습니다. LOB형은 대용량 데이터를 저장하기 위한 자료형입니다. 대표적으로 BLOB, CLOB 등이 있습니다.


위와 같은 구조와 내용을 바탕으로 PL/SQL을 작성하고 활용할 수 있습니다. PL/SQL의 다양한 기능을 이해하고 활용함으로써 데이터베이스 관련 작업을 효율적으로 처리할 수 있습니다.

728x90

댓글