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

SQL*Plus 核心命令速查與報表實戰範例

     編輯:關於SqlServer

常用格式化與報表命令

命令用途範例
REMARK / -- / /* */註釋REM This is a comment
SET HEADSEP標題分隔符SET HEADSEP ! → TTITLE 'Line1!Line2'
TTITLE頁首標題TTITLE 'Sales Report'
BTITLE頁尾標題BTITLE 'Confidential'
COLUMN欄位格式/標題/換行COL sal FORMAT $99,999 HEADING 'Salary'
BREAK ON分組換行/小計BREAK ON deptno SKIP 1 ON REPORT
COMPUTE SUM小計/總計COMPUTE SUM OF sal ON deptno
SET LINESIZE行寬SET LINESIZE 120
SET PAGESIZE頁長(行數)SET PAGESIZE 50
SET NEWPAGE頁間空行SET NEWPAGE 0 (無空行)
SPOOL輸出導向檔案SPOOL report.lst ... SPOOL OFF
SET PAUSE ON分頁暫停按 Enter 翻頁
SAVE存檔當前緩衝區 SQLSAVE myquery.sql
HOST / !執行 OS 命令HOST ls -l
START / @執行腳本檔@myscript.sql
EDIT啟動外部編輯器需先 DEFINE _EDITOR=vi
EXIT / QUIT離開 SQL*Plus

完整報表腳本範例

-- activity.sql : 圖書借閱統計報表
SET HEADSEP !
TTITLE 'Checkout Log for 1/1/02-3/31/02'
BTITLE 'from the Bookshelf'
COLUMN Name FORMAT A20
COLUMN Title FORMAT A20 WORD_WRAPPED
COLUMN DaysOut FORMAT 999.99 HEADING 'Days!Out'
BREAK ON Name SKIP 1 ON REPORT
COMPUTE AVG OF DaysOut ON Name
COMPUTE AVG OF DaysOut ON REPORT
SET LINESIZE 100
SET PAGESIZE 60
SET NEWPAGE 0
SET FEEDBACK OFF
SPOOL activity.lst

SELECT 
    Name, 
    Title, 
    CheckoutDate, 
    ReturnedDate, 
    ReturnedDate - CheckoutDate AS DaysOut  /* Count Days */
FROM BOOKSHELF_CHECKOUT
ORDER BY Name, CheckoutDate;

SPOOL OFF

輸出效果說明

  • 依 Name 分組,組間空一行
  • 每組顯示平均借閱天數
  • 報表末尾顯示整體平均
  • 標題分兩行顯示(HEADSEP !)
  • 結果直接寫入 activity.lst 供列印/歸檔

進階技巧

  • COLUMN ... NEW_VALUE var 將查詢結果存入變數,供後續標題/條件使用
  • SET AUTOTRACE ON 顯示執行計畫與統計
  • SET TIMING ON 顯示執行耗時
  • 登入腳本 glogin.sql / login.sql 自動套用常用設定
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved