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

Oracle SQL*Plus SPOOL 導出資料至 CSV 最佳實務

     編輯:Oracle 教學

導出腳本 (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 工具,適合定時批次導出。

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