-- 프로시저 또는 패키지에서 CURSOR 사용(PL/SQL)
-- FOR문을 이용한 CASE 2의 경우를 더 많이 사용
CASE 1. 일반적인 경우
DECLARE
CURSOR curSaleAmt(pSaleDate VARCHAR2)
IS
SELECT STORE_CD
, SUM(AMT)
FROM TB_SALES
WHERE 1=1
AND SALE_DATE = pSaleDate
GROUP BY SALE_DATE, STORE_CD
;
STORE_CD VARCHAR2(10);
AMOUNT NUMBER;
BEGIN
OPEN curSaleAmt('20201119');
LOOP
FETCH curSaleAmt INTO STORE_CD, AMOUNT;
EXIT WHEN curSaleAmt%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(STORE_CD || ':' || AMOUNT);
END LOOP;
CLSOE curSaleAmt;
END;
CASE 2. FOR문 이용한 경우
BEGIN
FOR Data IN curSaleAmt('20201119');
LOOP
DBMS_OUTPUT.PUT_LINE(Data.STORE_CD || ':' || Data.AMOUNT);
END LOOP;
END;
'ORACLE' 카테고리의 다른 글
[ORACLE]BULK COLLECT INTO 예제 (0) | 2020.11.19 |
---|---|
[ORACLE]tnsname.ora 설정 (0) | 2020.11.16 |
[ORACLE]SQL%ROWCOUNT 예제 (0) | 2020.11.12 |
[ORACLE]ROWNUM/ROW_NUMBER() 예제 (0) | 2020.11.12 |
[ORACLE]WITH절 예제 (0) | 2020.11.12 |