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

Oracle 表資料匯出 TXT/CSV 實戰:SQL*Plus SPOOL 最佳參數設定

     編輯:Oracle 資料庫基礎

一鍵匯出腳本 (czrk.sql)

SET ECHO OFF
SET FEEDBACK OFF
SET NEWPAGE NONE
SET PAGESIZE 50000
SET LINESIZE 20000
SET VERIFY OFF
SET PAGESIZE 0
SET TERM OFF
SET TRIMS ON
SET HEADING OFF
SET TRIMSPOOL ON
SET TRIMOUT ON
SET TIMING OFF
SET VERIFY OFF
SET COLSEP '|'

SPOOL D:\czrk.txt

SELECT sfzh || ',' || xm || ',' || xb || ',' || csrq || ',' || mz || ',' || xzqh || ',' || jzdz
FROM   m_czrk
WHERE  ROWNUM <= 10000;

SPOOL OFF

關鍵 SET 參數解析

參數作用建議值
ECHO OFF不顯示指令本身OFF
FEEDBACK OFF隱藏「已選取 N 筆」訊息OFF
NEWPAGE NONE不換頁NONE
PAGESIZE 0關閉分頁 (無標題重複)0
LINESIZE 20000單行最大寬度,防截斷大於最大行長
TRIMSPOOL ON移除輸出行尾空白ON
TRIMOUT ON移除螢幕輸出行尾空白ON
HEADING OFF不輸出欄位標題OFF
COLSEP '|'欄位分隔符 (配合 SELECT 串接)依需求 , | \t
TERM OFF關閉終端機輸出,僅寫檔OFF

執行方式

sqlplus user/pass@db @D:\czrk.sql

進階:動態產生欄位清單 (避免手寫 ||)

-- 產生 SELECT 串接字串
SELECT 'SELECT ' || LISTAGG(column_name, ' || '','' || ') WITHIN GROUP (ORDER BY column_id) || ' FROM ' || table_name
FROM   user_tab_columns
WHERE  table_name = 'M_CZRK';

大量資料效能建議

  • 單次匯出 < 100 萬筆用 SPOOL 即可。
  • 超過百萬筆建議改用 SQL*Loader UNLOAD、外部表 或 Data Pump (EXPDP),效能優於 SPOOL 數倍。
  • 啟用 ARRAYSIZE (如 SET ARRAYSIZE 5000) 減少網路往返。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved