1. Anonymous Block
- 가장 기본적인 PL/SQL구조 제공
- 선언영역과 실행영역으로 구분
- 저장되지 않음
(사용형식)
DECLARE
선언부(변수, 상수, 커서(=뷰) 선언);
BEGIN
실행부(비즈니스 로직 처리를 위한 SQL문);
[EXCEPTION
예외처리부;]
END;
(사용예)충남에 거주하는 회원들이 2020년 5월 구매실적을 조회하시오.
선언부에서 변수 선언
DECLARE
V_MID MEMBER.MEM_ID%TYPE;
V_MNAME MEMBER.MEM_NAME%TYPE;
V_AMT NUMBER:=0;
커서 생성
CURSOR CUR_MEM IS
SELECT MEM_ID, MEM_NAME
FROM MEMBER
WHERE MEM_ADD1 LIKE '충남%';
반복문
BEGIN
OPEN CUR_MEM;
LOOP
FETCH CUR_MEM INTO V_MID, V_MNAME;
EXIT WHEN CUR_MEM%NOTFOUND;
SELECT SUM(B.PROD_PRICE * A.CART_QTY) INTO V_AMT
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_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