立即注册 登录
炼数成金 返回首页

雷子的个人空间 http://f.dataguru.cn/?29740 [收藏] [复制] [分享] [RSS]

日志

sqlldr学习

已有 4720 次阅读2013-6-19 13:16 |个人分类:oracle| replace, control, insert, 数据库, 二进制

SQLldr是cmd下的命令,用来将文本格式数据导入到数据库中。
命令格式:
sqlldr username/password@sid control=*.ctl

*.ctl格式为:
load
infile "d://test.txt" 外部数据文件
infile "d://test1.txt" 可指定多个数据文件
append into table test 向表中追加数据
fields terminated by "," 外部文件的数据以“,”分隔
trailing nullcols 表中的字段没有对应的值时填充空值
(
id integer external, integer external 表示插入的数据是string,如果只保留integer,表示插入的数据是二进制
name "upper(:name)", 将插入的值转换为大写
con ":id||:name", 表中CON列的值是ID和NAME的组合值
dt date"yyyy-mm-dd" 插入日期型数据
)

在append的位置还可以用以下列表中的一个值:
insert 向表中插入值,但要求表开始时为空
replace delete表中的数据,然后插入新值
append 向表中追加数据
truncate trunctate表,然后插入新值

例:
C:\Users\wzj>sqlldr scott/tiger control=d:/dept.ctl

dept.ctl的内容如下:

load
infile "d://test.txt"
append into table tt
fields terminated by ","
trailing nullcols
(
id integer external,
name "upper(:name)",
con ":id||:name",
dt date"yyyy-mm-dd"
)

test.txt的数据如下
1,a,,2007-07-8
2,b,,2008-07-8
3,c,,2009-07-8

SQL> desc tt ;
名称 是否为空? 类型
----------------------------------------------------- -------- -------------
--------------------
ID VARCHAR2(10)
NAME VARCHAR2(20)
CON VARCHAR2(30)
DT DATE

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

 

GMT+8, 2019-5-20 13:07 , Processed in 0.079069 second(s), 20 queries .