環境:Oracle 10g 10.2
有一個文本資料,格式如下:
HLR_CODE HLR_TYPE REGION_CODE AREA_CODE PROV_CODE BUREAU_CODE VALID_DATE EXPIRE_DATE MODIFY_DATE
1 1302309 1 565 565 551 Z00 2000-1-1 2020-12-31 23:59:59 2008-11-19 20:22:56
2 1302310 1 210 21 210 Z00 2000-1-1 2020-12-31 23:59:59 2008-11-19 20:22:56
3 1302311 1 210 21 210 Z00 2000-1-1 2020-12-31 23:59:59 2008-11-19 20:22:56
4 1302312 1 210 21 210 Z00 2000-1-1 2020-12-31 23:59:59 2008-11-19 20:22:56
需要匯入到一張表:
create table BS_HLR_INFO
(
HLR_CODE VARCHAR2(8) not null,
HLR_TYPE NUMBER(3) not null,
REGION_CODE VARCHAR2(5) not null,
AREA_CODE VARCHAR2(5) not null,
PROV_CODE VARCHAR2(7) not null,
BUREAU_CODE VARCHAR2(5),
VALID_DATE DATE not null,
EXPIRE_DATE DATE not null,
MODIFY_DATE DATE default sysdate
);
方法是通過sql loader來完成:
1、寫設定檔
OPTIONS (skip=1,rows=128)
LOAD DATA
INFILE "hlr_info"
truncate
INTO TABLE BS_HLR_INFO -- 要插入記錄的表
Fields terminated by " "
trailing nullcols --表的欄位沒有對應的值時允許為空白
(
virtual_column FILLER, --這是一個虛擬欄位,用來跳過由 PL/SQL Developer 產生的第一列序號
HLR_CODE,
HLR_TYPE,
REGION_CODE,
AREA_CODE,
PROV_CODE,
BUREAU_CODE,
VALID_DATE DATE "YYYY-MM-DD HH24:MI:SS",
EXPIRE_DATE DATE "YYYY-MM-DD HH24:MI:SS",
MODIFY_DATE DATE "YYYY-MM-DD HH24:MI:SS"
)
2、執行匯入命令
F:\sqlloaderdata>dir hlr*
磁碟機 F 中的卷是 work
卷的序號是 647B-14FC
F:\sqlloaderdata 的目錄
2010-08-27 16:25 638 hlr_info.ctl
2010-08-24 09:58 18,470,605 hlr_info.dat
2010-08-27 16:27 2,056 hlr_info.log
3 個檔案 18,473,299 位元組
0 個目錄 28,318,511,104 可用位元組
F:\sqlloaderdata>sqlldr cs/cs@hatest control=hlr_info.ctl
執行後控制台輸出:
......達到提交點 - 邏輯記錄計數 223296
達到提交點 - 邏輯記錄計數 223406
達到提交點 - 邏輯記錄計數 223516
達到提交點 - 邏輯記錄計數 223626
達到提交點 - 邏輯記錄計數 223632
達到提交點 - 邏輯記錄計數 223633
F:\sqlloaderdata>
3、查看記錄檔
SQL*Loader: Release 10.2.0.1.0 - Production on 星期五 8月 27 16:26:37 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
控制檔案: hlr_info.ctl
資料檔案: hlr_info.dat
錯誤檔案: hlr_info.bad
廢棄檔案: 未作指定
(可廢棄所有記錄)
要載入的數: ALL
要跳過的數: 1
允許的錯誤: 50
綁定數組: 128 行, 最大 256000 位元組
繼續: 未作指定
所用路徑: 常規
表 BS_HLR_INFO,已載入從每個邏輯記錄
插入選項對此表 TRUNCATE 生效
TRAILING NULLCOLS 選項生效
列名 位置 長度 中止 封裝資料類型
------------------------------ ---------- ----- ---- ---- ---------------------
VIRTUAL_COLUMN FIRST * WHT CHARACTER
(FILLER FIELD)
HLR_CODE NEXT * WHT CHARACTER
HLR_TYPE NEXT * WHT CHARACTER
REGION_CODE NEXT * WHT CHARACTER
AREA_CODE NEXT * WHT CHARACTER
PROV_CODE NEXT * WHT CHARACTER
BUREAU_CODE NEXT * WHT CHARACTER
VALID_DATE NEXT * WHT DATE YYYY-MM-DD HH24:MI:SS
EXPIRE_DATE NEXT * WHT DATE YYYY-MM-DD HH24:MI:SS
MODIFY_DATE NEXT * WHT DATE YYYY-MM-DD HH24:MI:SS
ROWS 參數所用的值已從 128 更改為 110
表 BS_HLR_INFO:
223633 行 載入成功。
由於資料錯誤, 0 行 沒有載入。
由於所有 WHEN 子句失敗, 0 行 沒有載入。
由於所有欄位都為空白的, 0 行 沒有載入。
為綁定數組分配的空間: 255420 位元組 (110 行)
讀取 緩衝區位元組數: 1048576
跳過的邏輯記錄總數: 1
讀取的邏輯記錄總數: 223633
拒絕的邏輯記錄總數: 0
廢棄的邏輯記錄總數: 0
從 星期五 8月 27 16:26:37 2010 開始運行
在 星期五 8月 27 16:27:05 2010 處運行結束
經過時間為: 00: 00: 28.05
CPU 時間為: 00: 00: 02.61
匯入成功!