Hello World

C#(WINFORM, WINCE, WINDOWS MOBILE) 실전 활용 예제소스 및 프로그램 개발

[ORACLE]CURSOR 예제

댓글 0

ORACLE

2020. 11. 19.

-- 프로시저 또는 패키지에서 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;