早期Oracle 7.3 on HP-UX環境下,將數據導出為微機通用.dbf(FoxPro/DBase格式)是常見需求。本文記錄一套經驗證的四步轉換鏈:SQL*Plus Spool → Word清洗 → Excel文本導入 → FoxPro匯入,確保數據完整無損。
SET PAGESIZE 0 LINESIZE 200 FEEDBACK OFF HEADING OFF
SPOOL dwxx.lst
SELECT dwdm, dwmc, count FROM dwjbb WHERE dzrq IS NULL;
SPOOL OFF
獲得定寬/分隔符文本檔dwxx.lst,含表頭與數據行。用FTP下載至本地。
.lst,刪除分頁符、提示訊息、重複表頭等非數據內容。dwxx.txt(編碼 ANSI/GBK)。dwxx.txt → 自動啟動「文本導入嚮導」。dwxx.xls(Excel 97-2003格式)。關鍵點:Excel嚮導能正確處理欄位型別(字串/數值/日期),避免直接txt→dbf導致數值截斷或日期誤讀。
FILE → IMPORT → 選dwxx.xls → 目標表dwxx.dbf。dwdm, dwmc, count,型別、寬度自動推導。實測直接FoxPro匯入txt易出現:
❌ 數值欄位截斷(科學記數法誤判)
❌ 日期格式識別失敗
❌ 中文編碼亂碼
Excel作為「通用中介格式」,完成型別推斷與編碼標準化,是保障數據完整性的關鍵緩衝層。
EXPDP/IMPDP + 外部表 + UTL_FILE 生成CSV → Python/pandas → dbfwrite庫。dbfread/dbfwrite轉換。經典ETL鏈路在無現代工具環境下依然可靠;核心原則:文本清洗 → 型別標準化 → 目標格式生成 三階段分離,各環節可驗證可重試。