WIPIVERSE

PL/SQL

정의
PL/SQL(Procedural Language for SQL)은 Oracle Corporation이 개발한 관계형 데이터베이스용 절차적 프로그래밍 언어이다. SQL 문에 절차적 언어 요소(조건문, 반복문, 예외 처리 등)를 결합하여 데이터베이스 내에서 복합적인 로직을 구현하도록 설계되었다【1】.

주요 특징

구분 내용
블록 구조 PL/SQL 프로그램은 DECLARE, BEGIN, EXCEPTION, END 키워드로 구분되는 블록 형태로 구성된다. 블록은 중첩이 가능하며, DECLARE 절에서 변수·상수·타입 등을 선언한다.
프로그램 단위 익명 블록, 저장 프로시저, 함수, 패키지(스펙·바디), 트리거, 사용자 정의 타입·타입 바디 등 다양한 단위로 저장·재사용이 가능하다.
SQL 통합 SQL 문을 PL/SQL 블록 안에서 그대로 사용 가능하며, SQL과 PL/SQL이 동일한 엔진에서 실행되어 데이터베이스와의 통신 오버헤드가 최소화된다.
예외 처리 EXCEPTION 절을 통해 런타임 오류를 포착·처리할 수 있다. 사전 정의된 예외와 사용자 정의 예외를 활용한다.
변수·상수·타입 변수와 상수는 선언 시 자료형을 지정하며, 레코드, 테이블, 컬렉션 등 복합 자료형도 지원한다.
성능 서버 측에서 실행되므로 네트워크 왕복을 줄이고, 한번 컴파일된 PL/SQL 코드는 재사용 시 실행 속도가 빠르다.
보안 데이터베이스 내에 저장되어 실행되므로 클라이언트 애플리케이션에 비해 권한 관리와 감사가 용이하다.

역사·배경

  • 1990년대 초 Oracle에서 자체 개발하여 1995년 Oracle7에 처음 포함되었다. 이후 Oracle Database 버전과 함께 지속적으로 기능이 추가·보강되어 현재는 Oracle Database 핵심 언어 중 하나로 자리 잡고 있다【3】.

사용 맥락

  • 기업용 애플리케이션에서 데이터 무결성 검증, 복잡한 비즈니스 로직, 배치 처리, 트리거 기반 자동 작업 등에 널리 활용된다.
  • Oracle의 다양한 프로그래밍 인터페이스(JDBC, OCI, ODP.NET 등)에서 PL/SQL 호출이 가능하다.

참고 문헌

  1. Wikipedia, “PL/SQL”, https://en.wikipedia.org/wiki/PL/SQL
  2. GeeksforGeeks, “PL/SQL Introduction”, https://www.geeksforgeeks.org/plsql/plsql-introduction
  3. Tutorialspoint, “PL/SQL Tutorial”, https://www.tutorialspoint.com/plsql/index.htm
둘러보기

더 찾아볼 만한 주제

    전체 문서 보기