讀取檔案指令
| 指令 | 功能 | 特點 |
@file / START file | 載入並立即執行 | 支援本地/遠端 HTTP、多條 SQL/PLSQL 區塊 |
GET file [LIST|NOLIST] | 僅載入緩衝區,不執行 | 單條 SQL(無分號)或單一 PL/SQL 區塊 |
@ 指令進階用法
- 啟動時自動執行:
sqlplus user/pass @script.sql
- 遠端腳本:
@https://server/script.sql
- 注意:
sqlplus user/pass@net_service(無空格)為連線服務名,有空格則視為檔案。
GET 指令範例
SQL> GET /home/oracle/b.sql
1* SELECT ename FROM emp WHERE empno=7902
SQL> /
ENAME
----------
FORD
寫入檔案指令
| 指令 | 功能 | 選項 |
SAVE file [CREATE|APPEND|REPLACE] | 將緩衝區內容存檔 | CREATE(預設,檔案不存在才建)、APPEND(追加)、REPLACE(覆蓋) |
SPOOL file / SPOOL OFF|OUT | 將螢幕輸出導向檔案 | OFF 關閉並寫入、OUT 關閉寫入並送印表機 |
SPOOL 產出報表範例
-- c.sql
SPOOL cc.lst
SELECT ename, sal FROM emp WHERE deptno=10;
SPOOL OFF
-- 執行
SQL> @c
ENAME SAL
CLARK 2450
KING 5000
MILLER 1300
-- 產生 cc.lst,內容與螢幕相同
實務建議
- 腳本檔建議副檔名
.sql,輸出檔 .lst。
- 自動化部署常用
@ 串聯主腳本,SPOOL 記錄執行結果供稽核。
GET 適合互動式編輯單一陳述式後再 / 執行。