EDITORIAL
要件:セキュリティ監査、バックアップログテーブルに関連した安全性試験。
ステップ
1.ストアドプロシージャを作成します。
CREATE OR REPLACE PROCEDURE P_DAYCLEARはIS V_TABLE_COUNTのint型。 V_TABLE_NAME VARCHAR2(100 )。 V_YEAR_MONTH VARCHAR2(100 )。 v_sql VARCHAR2(300 )。 c_sql VARCHAR2(300 )。 BEGIN 選択 to_char関数(SYSDATE -間隔' 7 ' 日、' YYYYMMを' ) にV_YEAR_MONTH デュアル; V_TABLE_NAME:= ' DSM_COM_INDEX_HIS_VALUE ' || V_YEAR_MONTH; 選択 数(* ) にV_TABLE_COUNT からUSER_TABLES TABLE_NAME = V_TABLE_NAME。 - 判断表是否已经存在了IF V_TABLE_COUNT = 0 THEN - 建表 c_sql:= ' テーブルを作成する ' || V_TABLE_NAME || ' AS SELECT * 1 = 2 DSM_COM_INDEX_HIS_VALUEから' ; 実行即時c_sqlを。 コミット; END IF ; 選択 TO_CHAR(SYSDATE -間隔' 6 ' 日、' YYYY-MM-DDを' ) にV_YEAR_MONTH から、デュアル V_SQL:= ' 挿入 ' || V_TABLE_NAME || ' (:1、UPDATE_TIME <TO_DATE DSM_COM_INDEX_HIS_VALUE SELECT * FROM '' YYYY-MM-DD '' )' 。 -插数据 実行即時V_SQL V_YEAR_MONTHを使用して、 COMMIT ; - 删除数据 V_SQL:= ' DSM_COM_INDEX_HIS_VALUE UPDATE_TIME <TO_DATEから削除する(:1、' YYYY-MM-DD '' )' 。 実行即時V_SQL V_YEAR_MONTHを使用して、 COMMIT ; END P_DAYCLEAR;
2.夜の実行、スケジュールされたタスクを作成します。
宣言 JOB_ID PLS_INTEGERを。 開始 sys.dbms_job.submit(ジョブ=> JOB_ID、 何=> ' P_DAYCLEARを(); ' 、 NEXT_DATE => TO_DATE(' 2018年10月3日午前3時00分○○秒'、「DD-MM-YYYYのHH24:MI: SS ' )、 間隔=> ' TRUNC(SYSDATE + 86400)' )。 コミット; エンド ;
感謝