2007-07-27

数据批量导入Oracle数据库

来源: ice_spar的专栏 作者:佚名 评论 0 条
 
sqlldr userid=/ control=result2.ctl direct=true parallel=true
当加载大量数据时(大约超过10GB),最好抑制日志的产生:
  SQL>ALTER TABLE RESULTXT nologging;
这样不产生REDO LOG,可以提高效率。然后在CONTROL文件中load data上面加一行:unrecoverable
此选项必须要与DIRECT共同应用。
  在并发操作时,ORACLE声称可以达到每小时处理100GB数据的能力!其实,估计能到1-10G就算不错了,开始可用结构
相同的文件,但只有少量数据,成功后开始加载大量数据,这样可以避免时间的浪费。


我的示例:
一、在数据库建立表格weather如下:
create table weather(
outlook varchar(20),
temperature float,
humidity float,
windy varchar(10),
play varchar(10)
)
二、在F盘建立两个文件 分别如下:
#1、result.ctl内容如下:
load data
infile 'result.csv'
into table weather
(outlook char terminated by ',',
temperature char terminated by ',',
humidity char terminated by ',',
windy char terminated by ',',
play char terminated by ','
)

#2、result.csv内容如下:
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
三、命令行下执行
F:\>sqlldr userid=cqsb/ctbujx123 control=result.ctl

四、搞定


共3页: 上一页 [1] [2] 3 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:八个学习点帮助你全面认识Oracle数据库  
下一篇:将Oracle 10g从Win2003移植到Unix上
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号