存储过程批量生成awr脚本

DECLARE  
  
  l_snap_start       NUMBER := 40078;  
  l_snap_end         NUMBER := 40081;  
  l_dir              VARCHAR2(50) := 'AWRTEST';  
    
  l_last_snap        NUMBER := NULL;  
  l_dbid             NUMBER := 2778659381;  
  l_file             UTL_FILE.file_type;  
  l_file_name        VARCHAR(50);  
  cursor cur_inum is  SELECT instance_number FROM dba_hist_snapshot WHERE dbid = l_dbid GROUP BY instance_number ORDER BY instance_number;  
  
  
BEGIN  
  
  for l_instance_number in cur_inum loop   
    l_last_snap := NULL;  
    FOR cur_snap IN (SELECT snap_id  
                   FROM   dba_hist_snapshot  
                   WHERE  instance_number = l_instance_number.instance_number  
                   AND    snap_id BETWEEN l_snap_start AND l_snap_end  
                   ORDER BY snap_id)  
  LOOP  
    IF l_last_snap IS NOT NULL THEN  
      l_file := UTL_FILE.fopen(l_dir, 'awr_' ||l_instance_number.instance_number||'_'|| l_last_snap || '_' || cur_snap.snap_id || '.html', 'w', 32767);  --40162
        
      FOR cur_rep IN (SELECT output  
                      FROM   TABLE(DBMS_WORKLOAD_REPOSITORY.awr_report_html(l_dbid, l_instance_number.instance_number, l_last_snap, cur_snap.snap_id)))  
      LOOP  
        UTL_FILE.put_line(l_file, cur_rep.output);  
      END LOOP;  
      UTL_FILE.fclose(l_file);  
    END IF;  
    l_last_snap := cur_snap.snap_id;  --40161
  END LOOP;  
  end loop;  
    
EXCEPTION  
  WHEN OTHERS THEN  
    IF UTL_FILE.is_open(l_file) THEN  
      UTL_FILE.fclose(l_file);  
    END IF;  
    RAISE;   
END;  

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12272958/viewspace-2150429/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12272958/viewspace-2150429/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值