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

SQL*Plus 命令大全:從腳本執行到報表格式化的完整參考手冊

     編輯:Oracle 資料庫基礎

前言:SQL*Plus 命令 vs SQL 敘述

SQL*Plus 是 Oracle 官方命令列客戶端。兩類指令易混淆:

  • SQL 敘述(DML/DDL/DCL):操作資料與結構,執行後存入 SQL Buffer(僅保留最近一條),可編輯重跑。
  • SQL*Plus 命令:格式化輸出、環境設定、檔案操作,不進入 SQL Buffer,專為報表產出與工具控制設計。

核心命令分類速查

1. 腳本執行與編輯

命令用途範例
@file / START file執行腳本檔@ c:\scripts\init.sql
@@file腳本中呼叫同目錄腳本主腳本含 @@common.sql
EDIT啟動編輯器修改 SQL Buffer 內容
/ / RUN重跑 SQL Buffer 最後一條
SAVE file / GET fileBuffer 存檔/讀檔

2. 輸出導向與報表格式化

命令用途關鍵子句
SPOOL file / SPOOL OFF螢幕輸出導向檔案必配 SET TERMOUT OFF 提速
COLUMN (COL)欄位顯示格式化FORMAT, HEADING, JUSTIFY, NOPRINT, WRAPPED
BREAK ON col SKIP n分組斷行、插入空行CLEAR BREAKS 取消
TTITLE / BTITLE頁首/頁尾標題
SET MARKUP HTML ON輸出 HTML 表格搭配 SPOOL report.html

3. 環境變數控制(SET 命令精選)

SET LINESIZE 200        -- 單行寬度,防換行
SET PAGESIZE 50         -- 頁長(0 為不分頁)
SET FEEDBACK ON         -- 顯示影響行數
SET HEADING ON          -- 顯示欄標
SET NULL '(null)'       -- NULL 顯示字串
SET SERVEROUTPUT ON SIZE 100000 FORMAT WRAPPED  -- 啟用 DBMS_OUTPUT
SET TIMING ON           -- 顯示執行耗時
SET SQLBLANKLINES ON    -- 允許 SQL 內含空行
SET AUTOTRACE TRACEONLY EXPLAIN STATISTICS -- 執行計畫+統計
SET TRIMSPOOL ON        -- 移除 SPOOL 檔行尾空白
SET TERMOUT OFF         -- 關閉螢幕輸出(大量 SPOOL 必備)

4. Buffer 編輯微操作

命令說明
L [n]列出 Buffer(可指定行)
C /old/new當前行首次出現字串替換
I / A text當前行下插入/當前行尾附加
DEL [n]刪除當前行或指定行

5. 變數與綁定變數

  • 使用者變數:DEFINE var=value 或 COLUMN col NEW_VALUE var,引用 &var(每次提示)或 &&var(僅首次提示)。
  • 綁定變數:VARIABLE bind_var NUMBER,PL/SQL 區塊內用 :bind_var 參照,PRINT bind_var 顯示值。

6. 實用進階技巧

  • # 逃逸鍵:輸入 SQL 途中輸入 #cmd 可暫執行 SQL*Plus 命令(如 #DESC emp 查結構),不中斷當前語句。
  • 快速複製貼上:滑鼠選取 → 左鍵按住 → 右鍵點擊 → 內容自動貼至命令列末行。
  • HOST / !:暫離 SQL*Plus 執行 OS 命令(Windows 僅支援 HOST)。
  • COPY FROM ... TO ... CREATE table USING query:跨資料庫直接複製表資料。

常用查詢視圖速查

SELECT * FROM TAB;              -- 當前使用者所有表/視圖
SELECT * FROM USER_OBJECTS;     -- 所有物件明細
SELECT * FROM USER_TABLES;      -- 所有表
SELECT * FROM USER_INDEXES;     -- 所有索引

總結

熟練 SQL*Plus 命令,能讓 DBA 與開發者在無 GUI 環境下高效完成報表產出、腳本自動化、效能分析與跨庫資料遷移。建議將常用 SET 參數寫入 glogin.sql 或 login.sql 實現登入即時生效。

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