使用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装载数,需要了解更多的朋友可以参考下
利用 sqluldr2导出数据 使用sqlldr导入数据 通过merge into 合并更新数据。
利用sqlldr大量数据导入,方便,快速
使用sqlldr批量导入数据:http://blog.csdn.net/gengwx_2008/article/details/43792301
oracle sqlldr导入带有自动增加的数据实例
1. sqlldr简介 3 2. sqlldr结构 4 2.1. sqlldr结构图 4 2.2. sqlldr功能描述 5 ...3.10. LOB数据装载 24 3.10.1. 控制文件 25 3.10.2. 数据文件 25 3.10.3. 装载结果 26 3.11. 外部表装载 26 3.11.1. 装载结果 27
windowns下利用bat命令+oracle的sqlldr功能导入数据,导入速度很快
sqlldr报超出字符长度错误,可以参考的好资料。
SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件(数据)迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)
Oracle sqlldr 大批量数据导入工具使用实例,通过Oracle 自带的sqlldr 工具可快速导入大批量的数据至Oracle中。 工具使用前提条件: 1.安装的Oracle Client 不能为精简版,要不然就找不到sqlldr.exe 2.将Oracle的...
用过PLSQL developer么?配合起来不错,不用写控制文件了
快速批量将excel数据导入到Oracle数据库中,附件中有sql示例,excel文件示例,命令示例
VS2013 C#.Net开发 C#利用SqlLdr 数据批量导入Oracle程序源码,高效可达万行/秒。 1.可多表同时执行 2.可视导入信息反馈,可查看错误数据及导入日志。 3.内含 批处理 执行方法 及 导入 ldr Demo文件。 4.内含导数据...
oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...
利用oracle的sqlldr功能可添加控制规则的导入数据
oracle sqlldr多文件批量导入
同时代码还会生成sqlldr命令需要用到的control文件和bat文件,以及连接Oracle的配置文件,只要将MySQL导出的数据文件合到一起,执行bat文件,即可完成数据导入到Oracle的任务。所有文件都是以导入导出的那张表的表名...
用的是11.2.0.4的Instant Client,Oracle没给sqlldr,Tools里面也没有(12C就有)。 网上下载了几个都是11.2.0.1的sqlldr,包括标了版本号的,都需要替换库文件。 这个是自己安装p13390677_112040_Linux-x86-64_4of7...
oracle sqlldr 工具应用说明,将固定格式的文件数据导入到数据库中