PL/SQL은 'Procedural Language/Structured Query Language'의 약어로 오라클 관계형 데이터베이스의 SQL을 확장하여 절차적인 처리 기능성을 제공하기 위한 언어이다. 절차적인 처리가 가능하다는 건 프로그래머가 데이터 처리를 위한 상세한 방법을 지정할 수 있다는 걸 의미한다. 대부분의 DBMS는 오라클의 PL/SQL과 유사한 절차적 처리 언어를 제공한다.
RDB에서 데이터 처리를 위해 지원하는 표준언어인 SQL은 절차적 언어가 아니다. SQL로는 데이터의 처리 결과 집합만을 기술할 수 있으며 어떤 기법과 절차를 거쳐 해당 데이터 집합을 얻어야 하는지에 대해서는 기술할 방법을 전혀 제공하지 않는다.
SQL을 사용하여 데이터를 처리하는 경우 데이터의 처리 절차는 사용자에게는 마치 블랙박스와 같다.
반면 PL/SQL은 SQL의 처리는 물론이고 데이터 처리 과정에서의 조건판단, 반복처리, 다른 PL/SQL 호출, 예외사항 처리 등의 다양한 처리가 가능하여 융통성 있는 데이터 처리를 가능하게 한다.
PL/SQL 특징
1. 프로그래밍 언어와 데이터 처리의 통합
PL/SQL은 SELECT, INSERT, UPDATE, DELETE, MERGE문 등을 마치 일반적인 PL/SQL문장인 것처럼 실행이 가능하다.
PL/SQL 언어와 데이터베이스와의 긴밀한 통합의 수준은 다른 프로그래밍 언어에서 제공하는 데이터베이스 인터페이스와는 차원이 다르다. 다른 프로그래밍 언어에서 데이터베이스에 액세스하기 위해 여러개의 문장이 필요하다면, PL/SQL은 단 하나의 문장으로 이를 수행할 수도 있다.
2. 블록 단위 구성
모든 PL/SQL 언어는 블록구조로 이루어져 있다.
블록구조는 DECLART - BEGIN - EXCEPTION - END 형태로 정의 되는데 프로그램의 선언부, 실행부. 예외 처리부를 각각의 독립된 블록으로 나누어 작성하도록 되어 있다. 블록구조를 사용하여 프로그램 내의 관련된 항목들을 그룹화시킴으로 이해하고 유지보수하기 쉽게 만들 수 있다. 또한 내부에 하위 블록 구조나 서브프로그램을 포함하는 중첩 구조도 지원한다. 중첩 구조를 사용하여 규모가 큰 프로그램 블록을 하위의 세부 블록들로 나누는 작업을 반복할 수 있다.
3. 순차 처리 지원
작성된 프로그램은 순차적으로 실행되는 여러 개의 단위 문장과 하위 블록으로 구성되며 순차 처리를 위해 분기문이나 순환문과 같은 제어문을 사용할 수 있다.
4. 예외 처리 지원
PL/SQL 실행 중 정상적인 흐름에 위배되는 상황이 발생하면 예외 처리기가 작동하여 이를 처리할 수 있다.
오라클 PL/SQL은 데이터베이스와 긴밀히 통합되어 있어 PL/SQL 프로그램 자체의 실행에서 발생하는 예외뿐만 아니라 SQL문에서 발생하는 예외까지 구별없이 처리할 수 있다. 예외처리는 블록단위로 수행되며, 블록의 중첩과 더불어 예외 처리도 중첩이 가능하다.
5. 서브프로그램 지원
서브프로그램은 PL/SQL 함수와 프로시저를 말한다.
6. 패키지를 사용한 모듈화 지원
PL/SQL 패키지는 연관성을 가지는 타입, 상수, 변수, 커서, 예외, 서브프로그램등을 묶어서 하나의 응용 단위로 구성할 수 있도록 한다. 다시 말하면 사실상 하나의 응용 프로그램이다. 또한 패키지는 객체 지향 프로그래밍 언어의 특징인 캡슐화, 데이터 은닉, 다형성 등을 제공하는데 완전치는 않지만 오라클 데이터베이스에서 객체 지향 프로그래밍이 시작된 시초라고 할 수 있다.
7. 트리거 지원
8. 객체 지향 프로그래밍 지원
PL/SQL의 객체 타입은 오라클의 객체 지향 프로그래밍 지원의 핵심이다. 객체 타입은 오라클 패키지에서는 지원하지 않는 상속과 생성자와 더불어 부가적인 많은 기능을 지원하며 데이터 타입으로도 사용할 수 있다.
9. 다양한 내장 API 지원
10. 플랫폼 독립적
PL/SQL 프로그램은 어떤 운영체제에서 실행되는 오라클이건 간에 관계없이 실행 가능하다.
'DATABASE > SQL, PL-SQL' 카테고리의 다른 글
PL/SQL 식별자 - 1 (0) | 2021.01.17 |
---|---|
PL/SQL 구분자 (0) | 2021.01.17 |
익명 PL/SQL 예제 (0) | 2021.01.16 |
오라클 scott 예제 스키마 (0) | 2021.01.16 |
윈도우 10에서 Oracle 11g 설치(express버젼) (0) | 2021.01.16 |
댓글