shell script 와 oracle_plsql 을 혼합하여 간단한 예약프로그램을 만들고 있습니다.
일정 시간이 지나면 해당 하는 data 를 삭제 하는 방법 입니다.
특정 문장을 생성 해서 EXECUTE 란 함수를 이용 하여 쿼리를 실행 할겁니다.
PL-SQL
==================================================================================
— DBMS_OUTPUT 을 하기 위한 부분 입니다.
set serveroutput on
DECLARE
cursor_name INTEGER;
ret INTEGER;
p_ym varchar2(6);
p_sql varchar2(500);
BEGIN
p_sql := ‘ALTER TABLE ZMON_AUTH_LOG1 DROP PARTITION ZMON_AUTH_LOG_’||to_char(sysdate,’yyyymm’);
cursor_name := dbms_sql.open_cursor;
DBMS_SQL.PARSE(cursor_name, p_sql, DBMS_SQL.NATIVE);
ret := DBMS_SQL.EXECUTE(cursor_name);
DBMS_SQL.CLOSE_CURSOR(cursor_name);
if ret = 0 then
DBMS_OUTPUT.PUT_LINE(‘SUCCESS’);
else
DBMS_OUTPUT.PUT_LINE(‘FAILURE’);
end if;
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(sqlcode||sqlerrm);
END;
/
파티션 생성
===================================================================================
PARTITION BY RANGE (CREATE_DATE)
(
LOG_200707 VALUES LESS THAN (TO_DATE (‘2007-08-01 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’, ‘NLS_CALENDAR=GREGORIAN’)),
LOG_200708 VALUES LESS THAN (TO_DATE (‘2007-09-01 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’, ‘NLS_CALENDAR=GREGORIAN’)),
LOG_MAXVAL VALUES LESS THAN (MAXVALUE)
)