环境: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
执行后控制台输出:
达到提交点 - 逻辑记录计数 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
导入成功!