四川南充市醫保中心面臨超過十萬筆參保人員基礎資料(姓名、性別、社保編號、人員分類等)初次入庫後錯誤率高、廠商軟體缺乏排錯功能、人工核對耗時數月的難題。
核心思路:將 Oracle 生產庫與外部權威資料(校對文稿)同步導入 FoxPro,利用 FoxPro 高速索引與程式化比對邏輯,自動標記差異並生成分類報表。
SET HEADING OFF PAGESIZE 0 FEEDBACK OFF TRIMSPOOL ON ECHO OFF
SPOOL d:\out.txt
SELECT xm||','||xb||','||sbbh||','||ryfl||','
FROM shbx_nc.grxxk WHERE dwid=9999;
SPOOL OFF
依單位批次導出 CSV 格式文字檔。
建立兩個 DBF:
LYC1.DBF:Oracle 個人資料 (姓名、性別、社保編號、人員分類)LYC1_1.DBF:校對文稿資料 (姓名、社保編號、在職/退休工資)使用 APPEND FROM ... DELIMITED WITH "," 高速匯入。
第一輪比對 (1.prg): 以姓名為主鍵,比對社保編號:
BJ="Y" (正確)BJ="N" (錯誤)BJ=" " (無對應)RYFL="在職?",退休卻有在職工資 → RYFL="退休?"第二輪補充 (2.prg): 為 BJ="N" 與 BJ=" " 記錄尋找對比資訊:
DB 欄位記錄對方社保編號DB 欄位記錄對方姓名自動分頁列印四類報表:
報表尾部自動統計正確率、在職/退休人數。
Y/N/空) 直觀支持後續人工複核與修正。當前可考慮使用 Python (pandas)、PL/SQL 管線函數、Oracle DBMS_COMPARISON 或 ETL 工具 (Informatica, Kettle) 實現全資料庫級自動化比對,省去中介檔案與 FoxPro 環境依賴。