1. PL/SQL이란?
Oracle's Procedural Language extension to SQL의 약자
- PL/SQL의 특징
PL/SQL은 집합적 언어와 절차적 언어의 특징을 모두 가지고 있다.
- 집합적 언어의 특징 : SQL 사용
- 절차적 언어의 특징 : 변수 값 할당, 예외처리, 함수/프로시저 생성
- 일반 프로그래밍 언어와 다른 점
→ PL/SQL은 모든 코드가 DB 내부에서 만들어져 처리가 된다.(즉, 수행 속도와 성능이 좋다.)
2. PL/SQL의 기본 구조
- 블록(Block)
PL/SQL에서는 소스 프로그램의 기본 단위를 블록(Block)이라고 한다. 블록은 선언부, 실행부, 예외 처리부로 구성된다.
-- 이름부 입력
IS(AS)
-- 선언부 입력
BEGIN
-- 실행부 입력
EXCEPTION
-- 예외 처리부 입력
END;
- 이름부: 블록의 명칭이 오는 영역. 생략할 때는 익명 블록이 된다.
- 선언부: DECLARE로 시작되며, 실행부와 예외 처리부에서 사용할 각종 변수, 상수, 커서 등을 선언하는 영역. 사용할 변수나 상수가 없다면 생략 가능하다.
- 실행부: 실제 로직을 처리하는 영역. DDL문은 사용할 수 없고 DML 문만 사용할 수 있다.
- 예외 처리부: 실행부에서 로직을 처리하다가 오류가 발생하면 처리할 내용을 기술하는 영역.
* 변수 선언이나 실행부와 예외 처리부에서 사용하는 각종 문장의 끝에는 반드시 세미콜론(;)을 찍어야 한다.
- 코드 작성 예시
DECLARE
vi_num NUMBER;
BEGIN
vi_num := 100;
DBMS_OUTPUT.PUT_LINE(vi_num);
END;
/
- SET SERVEROUTPUT ON, SET TMING ON
SET SERVEROUTPUT ON; -- 출력 결과 표시
SET TIMING ON; -- 소요 시간 표시
DECLARE
vi_num NUMBER;
BEGIN
vi_num := 100;
DBMS_OUTPUT.PUT_LINE(vi_num);
END;
/
참고문헌 : 홍형경(2015), 오라클 SQL과 PL/SQL을 다루는 기술, 길벗