使用SQLPLUS生成HTML報表

2021-05-17 18:30:57 字數 2347 閱讀 5981

我們可以在sqlplus中手工執行awr,ash的指令碼生成html報表,下面來簡單講講怎麼利用sqlplus來生成html報表

在sqlplus中有個命令(具體可以參考官方文件sqlplus部分)

set mark[up] html [on | off] [head text] [body text] [table text] [entmap ] [spool ] [pre[format] ]

一:首先在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 生成csv 檔案

set echo off 非表示 set linesize 1000 列數 set pagesize 0 不分頁 set trimspool on spool 行末 無効 set pause off 相當於自動回車 set termout off 出力 畫面表示 set feedback off 行...

sqlplus使用教程

sqlplus基本概念 oracle的sqlplus是與oracle資料庫進行互動的客戶端工具,借助sqlplus可以檢視 修改資料庫記錄。在sqlplus中,可以執行sqlplus命令與sql語句。sqlplus是oracle原始資料操作的客戶端,這種命令列的格式有著強大的邏輯性,如果經常使用會對...

Sqlplus使用隨筆

摘要 本編隨筆不定時更新,記錄在使用sqlplus中遇到的問題,提供簡短的解決思路,留作參考。符號解釋 q 出現的問題 e 問題出現所在的環境 t 記錄時間 a 問題解答 q linux終端下sqlplus登陸的是哪個sid e vmware workstation 8,centos6.3 x64 ...