728x90
간단한 파티션 자동 삭제 프로시져 운영 하는 DB 조건에 맞게 수정해서 사용하면 되겠다.
1. 프로시져 설명 : SCOTT Schema가 소유한 TEST_LOG 라는 파티션 테이블(RANGE 파티션이고 일별파티션으로 생성)의 프로시져 수행시간 기준 31일 이전 데이터는 삭제하는 프로시져
table partition naming rule : TEST_LOG_PR_20220624
CREATE OR REPLACE PROCEDURE SCOTT.WEEKLY_DROP_PARTITION
IS
vSTMT VARCHAR2(100);
BEGIN
FOR PART IN (
SELECT TABLE_OWNER,TABLE_NAME,PARTITION_NAME
from dba_TAB_PARTITIONS
where table_name IN ('TEST_LOG')
and TABLE_OWNER='SCOTT'
AND TO_DATE(SUBSTR(PARTITION_NAME, -8, 8),'YYYYMMDD')<TRUNC(SYSDATE-31)
ORDER BY TABLE_OWNER, TABLE_NAME, PARTITION_POSITION)
LOOP
vSTMT:='ALTER TABLE '||PART.TABLE_OWNER||'.'||PART.TABLE_NAME||' DROP PARTITION '||PART.PARTITION_NAME;
execute immediate vSTMT;
END LOOP;
END;
/
728x90
'oracle' 카테고리의 다른 글
CTF(Conection Time Failover) VS TAF(Transparent Application Failover) (0) | 2022.06.28 |
---|---|
[ORACLE] ORA-12012: error on auto execute of job "SYS"."PMO_DEFERRED_GIDX_MAINT_JOB" (0) | 2022.06.24 |
RMAN 을 이용한 archivelog 삭제 명령어 모음 (0) | 2022.06.23 |
ORA-01092: ORACLE instance terminated. Disconnection forced (0) | 2022.06.22 |
ORACLE 함수 SUBSTR 사용법 (0) | 2022.06.22 |