设为首页 收藏本站
查看: 385|回复: 0

[经验分享] sqlplus里运行脚本生成类似awr样式的报告模板

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2014-4-22 17:19:05 | 显示全部楼层 |阅读模式
oracle中可以使用sqlplus的set markup html ,生成html格式的报告,虽然一些css样式可以从awr报告的源代码中获得,但是一直想模拟awr报告那种隔行换色的效果一直没找到简易的方法来弄,尤其像我这种不会html编程的,今天才知道js可以放在body里,总算解决了一个我长久以来的困扰,以下是一个生产最近24小时awr报告index的html页面,有这个模板,基本上只要把sql语句往里扔就可以生成一个山寨awr样式的报告了。

set linesize 200
set term off verify off feedback off pagesize 999
rem set markup html on entmap ON spool on preformat off
set trims on;
COLUMN instname NEW_VALUE _instname NOPRINT
select instance_name instname from v$instance;
COLUMN indextime NEW_VALUE _indextime NOPRINT
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') indextime from dual;
COLUMN rname NEW_VALUE _rname NOPRINT
select instance_name||'_awr_' rname from v$instance;
set heading on
set markup html on spool on preformat off entmap on -
head "<title>Database Report</title> -
  <style type='text/css'> -
   body              {font:bold 10pt Arial,Helvetica,Geneva,sans-serif;color:black; background:White;} -
   p                 {font:8pt Courier;color:black; background:White;} -
   td                {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;vertical-align:top;align:left;} -
   th                {font:bold 8pt Arial,Helvetica,Geneva,sans-serif; color:White; background:#0066CC;padding-left:4px; padding-right:4px;padding-bottom:2px} -
   h1                {font:bold 20pt Arial,Helvetica,Geneva,sans-serif;color:#336699;background-color:White;border-bottom:1px solid #cccc99;margin-top:0pt; margin-bottom:0pt;padding:0px 0px 0px 0px;} -
   h2                {font:bold 18pt Arial,Helvetica,Geneva,sans-serif;color:#336699;background-color:White;margin-top:4pt; margin-bottom:0pt;} -
   h3                {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background-color:White;margin-top:4pt; margin-bottom:0pt;} -
   a                 {font:9pt Arial,Helvetica,sans-serif; color:#663300; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
   a.link            {font:9pt Arial,Helvetica,sans-serif; color:#663300; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
   a.noLink          {font:bold 8pt Arial,Helvetica,sans-serif;color:#663300; vertical-align:top;margin-top:0pt; margin-bottom:0pt;} -
   a.noLinkBlue      {font:9pt Arial,Helvetica,sans-serif; color:#0000ff; text-decoration: none; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
   a.noLinkDarkBlue  {font:9pt Arial,Helvetica,sans-serif; color:#000099; text-decoration: none; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
   a.noLinkRed       {font:9pt Arial,Helvetica,sans-serif; color:#ff0000; text-decoration: none; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
   a.noLinkDarkRed   {font:9pt Arial,Helvetica,sans-serif; color:#990000; text-decoration: none; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
   a.noLinkGreen     {font:9pt Arial,Helvetica,sans-serif; color:#00ff00; text-decoration: none; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
   a.noLinkDarkGreen {font:9pt Arial,Helvetica,sans-serif; color:#009900; text-decoration: none; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
  </style>" -
body   "BGCOLOR='#0066CC'" -
table  "WIDTH='600px' BORDER='1' id='tab1'"
spool /check/awr/index.html
set markup html on entmap off
prompt <H1 size=+3>Report of &_instname. instance</H1><H3>the lastest report is generated at &_indextime. by liaody</H3>


select
snap_id,
'<a href="&_rname.'||to_char(end_interval_time,'yyyymmdd_hh24mi')||'.html">&_rname.'||to_char(end_interval_time,'yyyymmdd_hh24mi')||'.html </a>' report,
to_char(begin_interval_time,'YYYY-MM-DD HH24:MI') begin_time ,
to_char(end_interval_time,'YYYY-MM-DD HH24:MI') end_time
from
(
select * from dba_hist_snapshot
order by snap_id desc
)
where rownum<=24;

prompt <font size="2" face="Arial,Helvetica,Geneva,sans-serif"><b>End of Report</b></font>
prompt <script> -
        var table =document.getElementById("tab1"); -
    var len = table.rows.length; -
    for(var i=0;i<len;i++){ -
                if(i%2 == 0){ -
                        table.rows[i].style.background = "#FFFFCC"; -
                }else{ -
                        table.rows[i].style.background = "#FFFFFF"; -
                } -
        } -
</script>
spool off
SET MARKUP HTML OFF
SET TERMOUT ON
prompt
EXIT;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-18076-1-1.html 上篇帖子: 解决【ORA-00265: instance recovery required, cannot set ARCHIVELOG mode】 下篇帖子: Oracle数据库备份与恢复(I)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表