2011년 12월 5일 월요일

[Oracle] PL/SQL

* 탄생 배경
SQL 비 절차적 언어라 간단히 작성된 문장을 입력함으로서 원하는 결과를 쉽게 얻지만, 절차적 언어만이 가진 기법 사용 불가능(조건에 따라 처리 달리하기, 반복적으로 여러 개 문장 실행 반복하기 등




* PL/SQL 구조
1) 선언부 - 변수나 상수 선언
스칼라(SCALAR) - 선언부에 사용하는 변수
REFERENCES 변수 제공 - %TYPE      
                                                (ex) vdeptno  emp.deptno%TYPE;
                                       %ROWTYPE
                                                (ex) vemp  emp%ROWTYPE;


2) 실행부 - 제어문, 반복문, 함수 정의 등 logic 기술
변수에 값 할당하기 :=
(ex) vdname := 'ACCOUNT'


PROMPT에서 값 입력 받기
(ex) ACCEPT 변수명 PROMPT '입력하고자 하는 메시지'
       ACCEPT PDAN PROMPT → DECLARE
                                                     VDAN NUMBER(2) := &PDAN;


PL/SQL 테이블과 레코드 - 변수 타입을 사용자가 지정
테이블(column)
          TYPE type_name IS TABLE OF
          table_name.column_name%TYPE
          INDEX BY BINARY_INTEGER;


레코드(row)
          TYPE record_name IS RECORD 
          ( filed_name1 field_type
            . . .
            field_nameN field_type);




3) 예외처리 - 예외 발생 시 해결


(SET SERVEROUTPUT ON으로 설정 후 dbms_output으로 실행 결과 보기)

댓글 없음:

댓글 쓰기