需將 DBF 格式資料導入 Oracle。利用 SQL Server DTS(Data Transformation Services)作為中介橋樑:
來源:DBF 檔(選擇 DBase 5 驅動)
目的:Oracle(使用 Oracle OLE DB Provider)
SEQUENCE + TRIGGER 自動填充主鍵:CREATE SEQUENCE seq_tbl_id START WITH 1 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER trg_tbl_bi
BEFORE INSERT ON target_table
FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT seq_tbl_id.NEXTVAL INTO :NEW.id FROM dual;
END;
INSERT INTO target (col1, col2) SELECT c3, c4 FROM source_linked WHERE id > @lastMaxId;MERGE 實現 UPSERT。BULK INSERT)。| 現象 | 原因 | 對策 |
|---|---|---|
| 中文亂碼 | 字碼頁不匹配 | 來源 DBF 指定正確 Code Page(如 936/CP950),Oracle 端設定 NLS_LANG 一致 |
| 數值溢位 | DBF Numeric 精度超過 Oracle NUMBER 定義 | 擴大目標欄位精度或前置清洗 |
| 日期格式錯誤 | DBF Date 型別對應 Oracle DATE/TIMESTAMP | 在 DTS 轉換階段用 TO_DATE 明確格式化 |