首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

使用 SQL*Plus 輸出 Excel 與 HTML 格式報表的實作指南

     編輯:關於SqlServer

SQL*Plus 作為 Oracle 資料庫的命令列工具,不僅能執行 SQL 查詢,還能透過適當的設定輸出格式化的報表檔案。本文透過實際範例,示範如何利用 SQL*Plus 產生 Excel (.xls) 與 HTML (.htm) 兩種常用格式的輸出檔案,滿足不同使用者的報表需求。

核心架構:雙腳本分離設計

為了避免 Spool 輸出時包含多餘的環境設定資訊,建議採用「主控腳本」與「功能腳本」分離的架構:

  • main.sql:負責設定 SQL*Plus 環境參數、啟動 Spool、呼叫功能腳本、關閉 Spool 並結束
  • get_tables.sql:專注於實際的 SQL 查詢邏輯,純粹回傳資料結果

實作步驟與程式碼範例

1. 主控腳本 main.sql

[oracle@jumper utl_file]$ more main.sql
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
spool tables.xls
@get_tables.sql
spool off
exit

關鍵設定說明:

  • set markup html on:啟用 HTML 標記輸出模式,這也是產生 Excel 相容格式的關鍵
  • entmap ON:將特殊字元轉換為 HTML 實體編碼
  • spool on:確保 Spool 檔案包含 HTML 標記
  • preformat off:不使用預格式化文字,讓表格正常渲染

2. 功能腳本 get_tables.sql

[oracle@jumper utl_file]$ more get_tables.sql
select owner, table_name, tablespace_name, blocks, last_analyzed
from all_tables order by 1, 2;

3. 執行與驗證

[oracle@jumper utl_file]$ sqlplus "/ as sysdba" @main
SQL*Plus: Release 9.2.0.4.0 - Production on Mon Apr 25 10:30:11 2005
...
[oracle@jumper utl_file]$ ls -l tables.xls
-rw-r--r-- 1 oracle dba 69539 Apr 25 10:30 tables.xls

Excel 輸出效果預覽

輸出格式切換技巧

只需修改 main.sql 中的 Spool 檔名副檔名,即可輕鬆切換輸出格式:

  • Excel 格式:spool tables.xls — 瀏覽器會以試算表方式開啟
  • HTML 格式:spool tables.htm — 直接以網頁形式呈現

HTML 輸出效果預覽

實務應用建議

此技巧適用於快速產生臨時報表、資料匯出供業務人員分析、或是整合至自動化排程作業中。若需更精美的排版,可在 SQL 查詢中加入 HTML 標籤,或搭配 CSS 樣式表進一步美化 HTML 輸出結果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved