변수를 선언해서 쿼리를 실행해야 할 경우가 있는데요.
반복적인 작업을 완료하고 select를 한다던지...
여러가지 경우가 있을 텐데요.
DECLARE
변수선언
BEGIN
실행구문
END;
이런식으로 DECLARE BEGIN ~ END 구문으로 프로그래밍을 하여 결과를 확인할 수 있습니다.
아래 샘플을 참고하시면 됩니다.
DECLARE
V_NUM INTEGER := 0;
V_TARGET_DATE DATE;
BEGIN
LOOP
V_TARGET_DATE := SYSDATE - V_NUM;
DELETE FROM USE_STATUS_DAY
WHERE CREATE_DATE >= TO_DATE(TO_CHAR(SYSDATE - V_NUM, 'YYYYMMDD'))
AND CREATE_DATE < TO_DATE(TO_CHAR(SYSDATE - V_NUM + 1, 'YYYYMMDD'))
;
/* 날짜별배분율INSERT */
INSERT INTO USE_STATUS_DAY
(
USER_ID,
PJT_COUNT,
YMD,
CREATE_DATE
)
WITH LIST AS
(
SELECT M.USER_ID,
M.PJT_ID
FROM USE_STATUS S,
PJT_MEMBER M,
PJT P,
USER U
WHERE S.USERID = U.DISPLAY_UID
AND M.PJT_ID = P.ID
AND M.USER_ID = U.USER_ID(+)
AND S.USEDATE >= TO_DATE(TO_CHAR(V_TARGET_DATE, 'YYYYMMDD'))
AND S.USEdATE < TO_DATE(TO_CHAR(V_TARGET_DATE + 1, 'YYYYMMDD'))
GROUP BY M.USER_ID,
M.PJT_ID
)
SELECT USER_ID,
COUNT(*) PJT_COUNT,
TO_CHAR(V_TARGET_DATE, 'YYYYMMDD'),
SYSDATE
FROM LIST
GROUP BY USER_ID
;
COMMIT;
V_NUM := V_NUM + 1;
EXIT WHEN V_NUM > 300;
END LOOP;
END;
이렇게하면 따로 저장프로시저나 함수를 만들어 사용하지 않아도
Toad에서 F9 버튼으로 직접 실행 가능합니다.
'프로그래밍 언어 > 쿼리문 + Oracle + MySQL' 카테고리의 다른 글
MySQL Database Error: Specified key was too long; max key length is 1000 bytes 에러 해결방법 (0) | 2016.07.07 |
---|---|
오라클(Oracle) 설치시.. Command line option Syntax error Type Command/? for Help 해결방법 (16) | 2016.07.04 |
[MySQL] 테이블, 컬럼에 코멘트(comment) 달고 phpMyAdmin에서 확인하기 (0) | 2016.01.31 |
[오라클] oracle에서 저장프로시저 IN, OUT 파라미터 있을 경우 실행하는 방법 (3) | 2016.01.29 |
[Mysql] phpMyAdmin에서 데이타 insert문으로 저장하기 (0) | 2016.01.12 |
댓글