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


 


 

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다