首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sqlload的应用心得

2012-07-27 
sqlload的使用心得最近公司没人,把我逼到一线,前期公司为数据导入。使用工具选择sqlload。1.关于工具的介绍g

sqlload的使用心得

最近公司没人,把我逼到一线,前期公司为数据导入。使用工具选择sqlload。

1.关于工具的介绍google一搜很多,我直接说我是怎么使用的,遇到什么问题。

2. 数据格式为txt或csv规则数据,比如(第一种无分隔符数据):

test.txt

|----|-----|

姓名 ? 年龄

XX1 ? ? 20

XX2 ? ? 21

建控制文件

test.ctl

options(skip = 1) //跳过第一行,不用导入到数据库

load data

infile 'test.txt' ?// 需要导入的数据文件

append into table test //导入到哪张表 (insert/append....)

TRAILING NULLCOLS //表的字段没有对应的值时允许为空

(

? ? ? name POSITION(1,4),//表示一行中,需要数据的开始和结束位置

? ? ? sex POSITION(6,10)

?

)

建立bat可执行文件 test.bat

sqlldr userid=username/password@orcl control=test.ctl log=test.log bad=test.bad
pause

然后执行test.bat数据就可以存到数据库中。

第二种是csv格式数据,比如用逗号分隔

那控制文件改成

?

options(skip = 1) //跳过第一行,不用导入到数据库

load data

infile 'test.txt' ?// 需要导入的数据文件

append into table test //导入到哪张表 (insert/append....)

Fields terminated by "," //数据中每行记录用 "," 分隔 ?
?Optionally enclosed by '"' // 数据中每个字段用 '"' 框起

TRAILING NULLCOLS //表的字段没有对应的值时允许为空

(

? ? ? name NULLIF(NAME="") ?"TRIM(:NAME)", // 1.if(null)的情况 2.去掉2端空格

? ? ? sex ,

? ? ?//如果有date类型 datetest?DATE "YYYY-MM-DD HH24:MI:SS"

? ? // 还有好多种用法,我没用到

?

)


?就使用这样的方法导入了几十万,几百万的数据。很方便,很快。

?

提升速度:

?sqlldr userid=username/password@orcl control=xxx.ctl log=xx.log bad=xx.bad direct=true parallel=true

然后在控制文件中
load data 语句上边加上一句 ?unrecoverable?

?2者同时使用,速度提升惊人,之前5分钟,现在只需要1分钟。。

?

热点排行