1. PL/SQL 소개
A. PL/SQL
- SQL을 확장한 절차적 언어(Procedural Language)
- 관계형 DB에서 사용되는 Oracle 표준 데이터 액세스 언어
- 코드 실행 단위에 블록 구조 제공
- 쉬운 코드 유지 관리 가능
- 프로시저 생성자 제공
- 변수, 상수 및 데이터 유형
- 조건문 및 루프와 같은 제어 구조
- 재사용 가능한 프로그램 단위
B. PL/SQL 런타임 구조
C. PL/SQL 장점
- SQL & 프로시저 생성자 통합
- 성능 향상
- 모듈식 프로그램 개발
- Oracle 툴과의 통합
- 이식성
- 예외처리
D. PL/SQL 블록 구조
DECLARE (선언)
– 선택사항
– 변수, 커서, 유저 정의 예외 선언
BEGIN — END (실행) ** 필수**
– SQL 문
– PL/SQL 문
EXCEPTION (예외처리)
– 예외 발생 시 수행할 작업
E. PL/SQL 블록 유형
[프로시저]
SQL 또는 PL/SQL 문이 포함되어 있는 “명명된 객체”
[함수]
SQL 또는 PL/SQL문이 포함되어 있는 “명명된 객체”
지정된 데이터 유형의 RETURN 값 반환
[ANONYMOUS(익명 블록)]
이름이 지정되지 않은 블록
응용프로그램에서 인라인으로 선언,
응용프로그램이 실행 될 때마다 컴파일
DB에 저장되지 않음, 런타임에 PL/SQL엔진으로 전달되어 실행
[서브 프로그램]
데이터베이스에 저장되어 있는 명명된 PL/SQL 블록
필요에 따라 언제든 호출 가능
PROCEDURE 혹은 함수로 선언 가능
– 일반적 작업 수행 => PROCEDURE
– 값 계산 혹은 RETURN 값 반환 => 함수
서버 또는 응용 프로그램 레벨에서 저장 할 수 있음
F. PL/SQL BLOCK Example
DECLARE
v_fname VARCHAR2(20);
BEGIN
SELECT first_name
INTO v_fname
FROM employees
WHERE employee_id=100;
END;
/
G. PL/SQL BLOCK 출력 활성화
- SELECT 한 결과 값이 v_fname에 저장되었지만 출력되지 않음
- 1. SET SERVEROUTPUT ON
- 미리 정의된 ORACLE 패키지와 해당 프로시저를 익명 블록에 사용
- => DBMS_OUTPUT.PUT_LINE