使用SQLPLUS生成HTML报表
我們可以在SQLPLUS中手工運行AWR,ASH的腳本生成HTML報表,下面來簡單講講怎么利用SQLPLUS來生成HTML報表
在SQLPLUS中有個命令(具體可以參考官方文檔SQLPLUS部分)
SET MARK[UP] HTML [ON |?OFF] [HEAD?text] [BODY?text] [TABLE?text] [ENTMAP {ON?| OFF}] [SPOOL {ON |?OFF}] [PRE[FORMAT] {ON |?OFF}]
一:首先在SQLPLUS中設置
set mark html on spool on??entmap off? pre off
這樣設置過后,利用spool 導出為html,SQLPLUS將會自動的為我們創建HTML格式,
注意:如果設置pre 為on,那么輸出的不是HTML格式,默認為off,
entmap 默認為on ,它會將>換成HTML中的>來顯示,所以我將其設置為off
二:為了格式化輸出,我們需要對輸出內容格式化
set echo off?????????????????????????這樣設置之后不會在HTML報表中顯示執行過的SQL語句
set feedback off??????????????????這樣設置過后不會在HTML報表中顯示已經處理多少行
set heading on???????????????????設置標題顯示
set?termout off????????????????????關閉在屏幕上的輸出,這樣可以加快spool執行速度
set linesize 200?????????????????設置行寬度為120
set pagesize 1000???????????? 設置一頁顯示1000行
set trimout off??????????????????? 去掉 每行后面多余的空格
三:利用spool 輸出為 *.html
spool c:/test.html
四:寫下要執行的SQL語句
五:spool off
例如要查詢表空間利用率,并將結果輸出為HTML報表格式:
將下面的語句保存為一個SQL腳本,然后在SQLPLUS中調用
SET MARKUP HTML ON SPOOL ON pre off entmap off
SET ECHO OFF
SET TERMOUT OFF
SET TRIMOUT OFF
set feedback off
set heading on
set linesize 200
set pagesize 10000
col tablespace_name format a15
col total_space format a10
col free_space format a10
col used_space format a10
col used_rate format 99.99
spool c:/test.html
select a.tablespace_name,a.total_space_Mb||'m' total_space,b.free_space_Mb||'m'
free_space,a.total_space_Mb-b.free_space_Mb||'m' used_space,
(1-(b.free_space_Mb/a.total_space_Mb))*100 used_rate,a.total_blocks,b.free_blocks from????????????????????
(select tablespace_name,sum(bytes)/1024/1024 total_space_Mb,sum(blocks) total_blocks from dba_data_files
group by tablespace_name) a,
(select tablespace_name, sum((bytes)/1024/1024) free_space_Mb,sum(blocks) free_blocks from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name order by used_rate desc;
spool off
SQL> @test;
報表的截圖
總結
以上是生活随笔為你收集整理的使用SQLPLUS生成HTML报表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sqlplus导出excel文件
- 下一篇: biti_rainy的面试题