加载中…
个人资料
管军
管军
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,714
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

用SQLLDR来装载CLOB/BLOB列的控制文件例子

(2007-07-14 07:57:24)
 

前一阵给一交警系统恢复了汽车违章拍照系统,里面是大量得电子眼拍得违章照片。他们得磁盘阵列坏了,而且没备份,所以通过朋友找到这里给做恢复。因为是磁盘阵列坏了,所以无法做远程恢复,让他们把每块硬盘做成镜象文件通过INTERNET发给我们以后,我们做了恢复。恢复出来以后,我把数据发给他们,结果他们的dba不能导入到数据库里。
他们的DBA本来说对SQLLDR很熟悉,所以数据给他们,让他们自己写ctl控制文件,结果因为没有导入LOB 得经验,所以导不进去,所以这里写个例子,让大家以后有同样得问题,参照这个就可以了。

首先建立表:

SQL> desc lobdemo
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ------------

 AA01                                      NOT NULL VARCHAR2(10)
 AA02                                      NOT NULL BLOB

以下是ctl控制文件得写法:文件名为ctldemo.ctl

load data
infile 'dump002.dat'
insert
into table "BTGL"."LOBDEMO1"
FIELDS TERMINATED BY '|' TRAILING NULLCOLS    
("AA01"                             CHAR(3)  enclosed by '|',
 LOBFILE_COL1                       FILLER CHAR                     ,
 "AA02"                             LOBFILE(LOBFILE_COL1) TERMINATED BY EOF NULLIF LOBFILE_COL1 = 'NONE')

然后在DOS下执行:
sqlldr username/password control=ctldemo.ctl

当时要导入得是100多万条,所以我采用了direct方式
c:\>sqlldr username/password control=ctldemo.ctl  direct=y

sqlldr也支持多字符分隔符文件导入。只要类似fields terminated by "|||"这样就可以了! 其中|||就是分割符

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有