SQL Loader的导入文本数据

简介:
环境:
Oracle10g 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
 
导入成功!


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/384195,如需转载请自行联系原作者
相关文章
|
8天前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
28天前
|
SQL 存储 关系型数据库
一文搞懂SQL优化——如何高效添加数据
**SQL优化关键点:** 1. **批量插入**提高效率,一次性建议不超过500条。 2. **手动事务**减少开销,多条插入语句用一个事务。 3. **主键顺序插入**避免页分裂,提升性能。 4. **使用`LOAD DATA INFILE`**大批量导入快速。 5. **避免主键乱序**,减少不必要的磁盘操作。 6. **选择合适主键类型**,避免UUID或长主键导致的性能问题。 7. **避免主键修改**,保持索引稳定。 这些技巧能优化数据库操作,提升系统性能。
226 4
一文搞懂SQL优化——如何高效添加数据
|
1月前
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
54 0
|
8天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
8天前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
8天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL条件控制:数据的“红绿灯”与“分岔路”
【4月更文挑战第19天】在Oracle PL/SQL中,IF语句与CASE语句扮演着数据流程控制的关键角色。IF语句如红绿灯,依据条件决定程序执行路径;ELSE和ELSIF提供多分支逻辑。CASE语句则是分岔路,按表达式值选择执行路径。这些条件控制语句在数据验证、错误处理和业务逻辑中不可或缺,通过巧妙运用能实现高效程序逻辑,保障数据正确流转,支持企业业务发展。理解并熟练掌握这些语句的使用是成为合格数据管理员的重要一环。
|
8天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL表达式:数据的魔法公式
【4月更文挑战第19天】探索Oracle PL/SQL表达式,体验数据的魔法公式。表达式结合常量、变量、运算符和函数,用于数据运算与转换。算术运算符处理数值计算,比较运算符执行数据比较,内置函数如TO_CHAR、ROUND和SUBSTR提供多样化操作。条件表达式如CASE和NULLIF实现灵活逻辑判断。广泛应用于SQL查询和PL/SQL程序,助你驾驭数据,揭示其背后的规律与秘密,成为数据魔法师。
|
1月前
|
SQL 关系型数据库 MySQL
SQL INSERT INTO order_record SELECT * FROM 从一张表查出数据插入到另一张表
SQL INSERT INTO order_record SELECT * FROM 从一张表查出数据插入到另一张表
14 0
|
1月前
|
SQL 安全 数据库
第三章用sql语句操作数据
第三章用sql语句操作数据
10 0
|
1月前
|
SQL 数据库 数据库管理
SQL中如何添加数据:基础指南
SQL中如何添加数据:基础指南
25 2