오라클 일일 파티션 삭제 프로시저 0 3 2,444

by webma [PL/SQL] [2019.12.24 01:29:48]


안녕하세요. 

오라클 초보자인데 도움을 얻고자 합니다.

하루 데이터양이 많아서 일일 파티션으로 나누었는데요

오늘 날짜 기준으로 3개월 전의 데이터는 TRUNCATE 시켜야 하는데요

이부분을 저장 프로시저로 개발 후 배치로 돌리라고 하네요..

배치는 개발자들이 하면 되는데요 프로시저를 어떻게 짜야 하는지 몰라서 도움을 청하고자 합니다.

현재 파티션 네이밍은 P_YYYYMMDD(20191224) 부터 시작 해서 1년치 나눈상태이거든요..

파라미터로는 현재 날짜를 받아오면 될듯 한데 도통 모르겠네요..

혹시 이런 경험 있으신 분 계시면 도움을 요청합니다.

 

by 우리집아찌 [2019.12.24 08:00:50]

drop 스크립트는 밑에 있습니다

http://www.gurubee.net/lecture/1908

혹시 글로벌 인덱스가 설정되어있으면 drop후

index가 unused 가 되니 주의하시길 바랍니다

https://otsteam.tistory.com/110


by 마농 [2019.12.24 09:17:06]
CREATE OR REPLACE PROCEDURE p_part_drop
IS
    v_sql VARCHAR2(90);
BEGIN
    v_sql := 'ALTER TABLE partitioned_table DROP PARTITION '
             || 'P_' || TO_CHAR(sysdate - 90, 'yyyymmdd');
    EXECUTE IMMEDIATE(v_sql);
    -- Global Index 없다면 여기까지
    -- Global Index 있다면 추가 Index Rebuild 로직 필요.
END;
/

 


by webma [2019.12.24 23:36:44]

마농님..너무 감사합니다..

항상 도움만 받아가네요..

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입