PL/SQL_Anonymous Block

Gyeomii·2022년 5월 3일
0

PL/SQL

목록 보기
1/4
post-thumbnail

1. Anonymous Block

- 가장 기본적인 PL/SQL구조 제공

- 선언영역과 실행영역으로 구분

- 저장되지 않음

(사용형식)

DECLARE 
 선언부(변수, 상수, 커서(=뷰) 선언);
BEGIN
 실행부(비즈니스 로직 처리를 위한 SQL문);
 [EXCEPTION
  예외처리부;]
  END;

(사용예)충남에 거주하는 회원들이 2020년 5월 구매실적을 조회하시오.

선언부에서 변수 선언

DECLARE --V_@@@ : 변수 선언
    V_MID MEMBER.MEM_ID%TYPE; --회원번호
    V_MNAME MEMBER.MEM_NAME%TYPE; --회원명
    V_AMT NUMBER:=0; --구매금액합계

커서 생성

CURSOR CUR_MEM IS --CURSOR : SELECT문 결과의 집합
     SELECT MEM_ID, MEM_NAME
       FROM MEMBER
      WHERE MEM_ADD1 LIKE '충남%';

반복문

  BEGIN -- CURSOR는 BEGIN, END 블록에서 사용
    OPEN CUR_MEM; -- OPEN 커서명 : 커서를 열기
    LOOP --반복문
     FETCH CUR_MEM INTO V_MID, V_MNAME; -- FETCH 커서명 INTO 변수명 : CURSOR의 내용을 읽어와서 변수에 저장
     EXIT WHEN CUR_MEM%NOTFOUND; -- EXIT WHEN : LOOP 종료조건(읽어올 자료가 없을 때 까지)
     SELECT SUM(B.PROD_PRICE * A.CART_QTY) INTO V_AMT -- SELECT 함수 INTO 변수명 : 읽어온 자료를 변수의 저장 
       FROM CART A, PROD B
      WHERE A.CART_PROD = B.PROD_ID
        AND A.CART_NO LIKE '202005%';
     DBMS_OUTPUT.PUT_LINE('회원번호 : '||V_MID); --DBMS 출력
     DBMS_OUTPUT.PUT_LINE('회원명 : '||V_MNAME);
     DBMS_OUTPUT.PUT_LINE('구매합계 : '||V_AMT);
     DBMS_OUTPUT.PUT_LINE('----------------------');
    END LOOP;
  CLOSE CUR_MEM;

1)변수와 상수

- BEGIN ~ END 블록에서 사용할 변수 및 상수 선언

(선언형식)

  	변수명 [CONSTANT] 데이터타입|참조타입 [:= 초기값];
    '=' -> Equal
    ':=' -> 할당연산자

변수의 종류

   	. SCALAR 변수 : 하나의 값을 저장하는 일반적 변수
   	. 참조형 변수 : 해당 테이블의 행(ROW)나 열(COLUMN)의 타입과 크기를 참조하는 변수
   	. BIND 변수 : 파라미터로 넘겨지는 값을 전달하기 위한 변수
    . 상수 선언은 CONSTANT 예약어를 사용하며 이때 반드시 초깃값을 설정해야 함

데이터타입

   	. SQL 에서 사용하는 자료타입
   	. PLS_INTEGER, BINARY_INTEGER -> 4byte 정수
   	. BOOLEAN 사용 가능 -- TRUE, FALSE, NULL이 저장됨
    . 숫자형 변수는 사용전 반드시 초기화 해야됨

참조형

   	. 열참조 : 테이블명.컬럼명%TYPE
   	. 행참조 : 테이블명%ROWTYPE
profile
김성겸

0개의 댓글