当前位置:首页 > 开发 > 数据库 > 正文

sqlldr装载数据

发表于: 2012-11-29   作者:as11051105   来源:转载   浏览次数:
摘要: 使用sqlldr向oracle导入文本数据     D:\> sqlldr mcp/mcp_asia D:\mcp_operator.ctl mcp_operator.bad silent=header,feedback [说明]         silent=header,feedba
使用sqlldr向oracle导入文本数据
    D:\> sqlldr mcp/mcp_asia D:\mcp_operator.ctl mcp_operator.bad silent=header,feedback
[说明]
        silent=header,feedback 隐藏数据载入过程中的提示信息

其中,控制文件mcp_operator.ctl的内容如下:
Load data
infile 'D:\mcp_operator.AVL'
into table mcp.int_03001_20100616
append
fields terminated by ','
(
        op_id,op_name,login_name,phone,op_status,lock_status,org_id,region_code,county_code
)
[说明]
        infile 要载入的数据文件完整路径
        into table mcp.int_03001_20100616 向表中插入数据
        fields terminated by ',' 字段分隔符为逗号
        (op_id,op_name,...) 定义字段顺序
        row 多少条记录提交一次,默认为64
数据载入方式:
        a、insert,为缺省方式,在数据装载开始时要求表为空
        b、append,在表中追加新记录
        c、replace,删除旧记录,替换成新装载的记录
        d、truncate,同上
表字段无对应值,允许其为空:
        TRAILING NULLCOLS

参考:http://www.cnblogs.com/twyth/archive/2009/08/16/1547141.html


1) 把 users_data.cvs 中的内容补到 users.ctl 中,并以 BEGINDATA 连接,还要把 INFILE "users_data.csv" 改为 INFILE *。同时为了更大化的说明问题,把数据处理了一下。此时,完整的 users.ctl 文件内容是:
OPTIONS (skip=1,rows=128) -- sqlldr 命令显示的选项可以写到这里边来,skip=1 用来跳过数据中的第一行
LOAD DATA
INFILE *  -- 因为数据同控制文件在一起,所以用 * 表示
append    -- 这里用了 append 来操作,在表 users 中附加记录
INTO TABLE users
when LOGIN_TIMES'8'  -- 还可以用 when 子句选择导入符合条件的记录
Fields terminated by ","
trailing nullcols
(
  virtual_column FILLER, --跳过由 PL/SQL Developer 生成的第一列序号
  user_id "user_seq.nextval", --这一列直接取序列的下一值,而不用数据中提供的值
  user_name "'Hi '||upper(:user_name)",--还能用SQL函数或运算对数据进行加工处理
  login_times terminated by ",", NULLIF(login_times='NULL') --可为列单独指定分隔符
  last_login DATE "YYYY-MM-DD HH24:MI:SS" NULLIF (last_login="NULL") --当字段为"NULL"时就是 NULL
)
BEGINDATA --数据从这里开始,USER_ID,USER_NAME,LOGIN_TIMES,LAST_LOGIN
1,1,Unmi,3,2009-1-5 20:34
2,2,Fantasia,5,2008-10-15
3,3,隔叶黄莺,8,2009-1-2
4,4,Kypfos,NULL,NULL
5,5,不知秋,1,2008-12-23


======================================================================
日期类型:             op_time date "YYYY-MM-DD"
timestamp类型:        so_date timestamp "YYYY-MM-DD HH24:MI:SS.ff"
使用Oracle函数:       so_nbr "TRIM(:so_nbr)"

sqlldr装载数据

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
直接路径加载与常规路径加载的比较 保存数据的方法 常规路径加载使用 SQL 处理和数据库 COMMIT 操作
公司的业务场景如下: 某一个体系需要进行重构,其中包括表的重新设计和库表数据迁移。而这一块是我
sqlldr这个命令可以将文本中的数据 大批量的 导入到oracle数据库表中 在win7下使用很简单,自己亲自
转载整理自:http://titan.iteye.com/ 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以
转载整理自: http://titan.iteye.com/ 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以
jquery-easyui的form('load') 对于日期控件, 装载不了数据。主要在修改时,日期初始化不了,哪位朋
数据装载 数据的装载: •SQL*LOADER •外部表 •导入/导出 SQL*LOADER: SQL*LOADER是一个ORACLE工具
CSV: Comma-Separated Values(逗号分隔值)的缩写,是以逗号分隔字段的多行文本文件 sqlldr 是sql
SQLLDR用于快速的批量导入数据, 示例步骤如下: 1、确定Oracle的连接示例   username/password@s
1、检测sqlldr是否可用 cmd->sqlldr->如出现图中的参数信息说明sqlldr已安装并可用,通过这些
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号