バックアップログテーブルを格納することにより、Oracleの手順とタスクのタイミング

 

EDITORIAL

要件:セキュリティ監査、バックアップログテーブルに関連した安全性試験。

ステップ

1.ストアドプロシージャを作成します。

CREATE  OR  REPLACE  PROCEDURE P_DAYCLEARはIS 
  V_TABLE_COUNTのint型
  V_TABLE_NAME   VARCHAR2100 )。
  V_YEAR_MONTH   VARCHAR2100 )。
  v_sql          VARCHAR2300 )。
  c_sql           VARCHAR2300 )。
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)' )。
コミット;
エンド ;

 感謝

 

おすすめ

転載: www.cnblogs.com/yadongliang/p/11530724.html