spool_export.sql)SET FEEDBACK OFF SET HEADING OFF SET TERMOUT OFF SET COLSEP ',' SET VERIFY OFF SET ECHO OFF SET TRIMSPOOL ON SET PAGESIZE 0 SET LINESIZE 1000 DEFINE FILEPATH = 'D:\export\emp_&_DATE..csv' PROMPT *** Spooling to &FILEPATH SPOOL &FILEPATH SELECT empno, ename, job, mgr, hiredate, sal, comm, deptno FROM emp; SPOOL OFF SET TERMOUT ON SET FEEDBACK ON SET HEADING ON
SQL> @D:\scripts\spool_export.sql
| SET 命令 | 作用 | 備註 |
|---|---|---|
| HEADING OFF | 隱藏欄位標題 | 若需標題改 ON 並手動處理第一行 |
| TERMOUT OFF | 關閉螢幕輸出 | 必須在 SPOOL 前設定,否則螢幕與檔案雙重輸出 |
| COLSEP ',' | 欄位分隔符 | CSV 建議逗號,含逗號欄位需自行雙引號包裹 |
| TRIMSPOOL ON | 移除每行尾部空白 | 避免固定寬度產生大量空格 |
| PAGESIZE 0 | 取消分頁 | 防止每 14 行插入分頁符 |
| LINESIZE | 單行最大字元數 | 設大於預估行寬,防止截斷換行 |
SET HEADING ON
SET COLSEP ','
-- 手動印標題
PROMPT "EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO"
-- 資料列需自行加雙引號
SELECT '"'||empno||'"' AS empno,
'"'||ename||'"' AS ename,
...
FROM emp;
7 萬筆資料導出約 10 秒,遠快於 GUI 工具,適合定時批次導出。