프로그래밍이란 게 뭐든 샘플만 있으면 못할 게 없죠.
저장프로시져 만들때 샘플이 없어서 네이버를 찾아헤매던 기억이 있어서 샘플을 남깁니다.
CREATE OR REPLACE PROCEDURE YOUNG.DAILYSUM_DATA
IS
CURSOR cur IS
SELECT CREATE_DATE, CUST_NO, COLLECT_AMT
FROM YOUNG.T_COLLECT;
CURSOR cur2 IS
SELECT SUBSTR(CREATE_DATE,1,6) AS CREATE_DATE, CUST_NO, SUM(COLLECT_AMT) AS COLLECT_AMT
FROM YOUNG.T_COLLECT GROUP BY SUBSTR(CREATE_DATE,1,6), CUST_NO;
BEGIN
DBMS_OUTPUT.ENABLE;
--고객일원장
FOR cur_list IN cur LOOP
INSERT INTO YOUNG.T_DAILYSUM (IDATE, CUST_NO, COLLECT_AMT)
VALUES (cur_list.CREATE_DATE, cur_list.CUST_NO, cur_list.COLLECT_AMT);
END LOOP;
--월원장
FOR cur_list2 IN cur2 LOOP
INSERT INTO YOUNG.T_MONTHSUM (IMONTH, CUST_NO, COLLECT_AMT)
VALUES (cur_list2.CREATE_DATE, cur_list2.CUST_NO, cur_list2.COLLECT_AMT);
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(SQLERRM||'에러 발생 ');
DBMS_OUTPUT.PUT_LINE('데이터 입력 완료');
END DAILYSUM_DATA;
실행할 때는 이걸로...
SET SERVEROUTPUT ON;
EXEC YOUNG.DAILYSUM_DATA;
'프로그래밍 언어 > 쿼리문 + Oracle + MySQL' 카테고리의 다른 글
[쿼리문] Merge into를 이용해서 insert나 update를 자동으로 실행하자. (0) | 2015.02.04 |
---|---|
[쿼리문] 조건절에 WHERE 1=1, WHERE 1=0 사용하여 쿼리 간편하게 사용하기 (0) | 2014.11.01 |
[쿼리문/오라클] Oracle에서 중복 조인을 피하기 위한 Update 방법 (MERGE 사용) (0) | 2011.04.01 |
단일행을 다중 row로 분리, 다중 row 결과를 단일행으로 연결하는 방법 (0) | 2011.03.14 |
[Oracle] 오라클에서 WITH문으로 쿼리를 임시테이블이나 View처럼 사용하자. (5) | 2011.03.03 |
댓글