Oracle:SQL Loader的匯入文本資料

來源:互聯網
上載者:User

環境: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

匯入成功!

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.