쌍용교육(JAVA)/PL\SQL

쌍용교육 -PL/SQL 수업 21일차 (PL/SQL의 기초)

구 승 2024. 4. 12. 10:35
PL/SQL : Procedural language extension to Structured Query Language(SQL)의 약자
             SQL을 확장한 순차적 처리 언어
    
    
PL/SQL의 기본 구조
PL/SQL의 기본 단위는 블록(BLOCK)

1)선언부(Declarative Part) : 사용할 변수나 상수를 선언(선언부에만 변수와 상수 선언 가능)

2)실행부(Executable Part): 실제 처리할 로직을 담당하는 부분

3) 예외처리부(Exception - building Part) : 실행부에서 로직을 처리하던 중 발생할 수 있는 각종 오류들에 대해 처리

실행부만 명시한 형태
BEGIN
    DBMS_OUTPUT.PUT_LINE('Hello World!');
END;

변수사용
DECLARE
--변수를 선언할 수 있는 선언부
message VARCHAR2(100); --변수명 후 자료형과 사이즈 순서 (자바와 반대되는 순서다)
BEGIN
--실행부에 사용할 변수는 선언부에서 미리 선언되어야 함.
message := 'Hello World!!!';
DBMS_OUTPUT.PUT_LINE(message);
END;

변수 선언 및 초기화
DECLARE
--변수 선언 및 초기화
message VARCHAR2(100) := 'Hello ORACLE';
BEGIN
DBMS_OUTPUT.PUT_LINE(message);
END;

DECLARE 
--변수 선언 후 초기화를 하지 않으면 null
counter INTEGER; --SQL에서는 안되지만 pl/sql에서는 INTEGER가 가능
BEGIN
counter := counter +1;
IF counter IS NULL THEN  --IF 하고 THEN 사이에 조건값을 넣고 
    DBMS_OUTPUT.PUT_LINE('result : counter is null'); --THEN과 END IF 사이에 결과값을 넣는다.
END IF;    
END;

DECLARE
--변수선언
counter INTEGER;
i INTEGER;
BEGIN
    FOR i IN 1..9 LOOP --1부터 9까지 1씩 증가한다.
        counter := 2 * i; --i는 null이지만 for문안에서 초기화되기 떄문에 연산이 가능하다.
        DBMS_OUTPUT.PUT_LINE('2* '|| i || '=' || counter);
END LOOP;
END;
예외처리부
EXCEPTION WHEN 예외1 THEN 예외처리1
                 WHEN 예외2 THEN 예외처리2
                 WHEN OTHERS THEN 예외처리

DECLARE
--변수 선언
 counter INTEGER;
BEGIN
--변수 초기화
 counter :=10;
 counter := counter/0;
 DBMS_OUTPUT.PUT_LINE(counter);
 EXCEPTION WHEN OTHERS THEN
  DBMS_OUTPUT.PUT_LINE('errors');
END;