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)
 )

Leave a Reply

Your email address will not be published. Required fields are marked *