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

ORACLE SQLLDR 空格的问题

(2010-08-13 15:48:00)
标签:

杂谈

分类: Oracle

应用场景:

需求是把文件中数据的空格去掉后加载入库

当我们的input file 有分隔符时,control file 中的 PRESERVE BLANKS 无效,因为 SQLLDR这时是保留空格的,这个时候只能在control file中针对每个字段做trim处理。

当我们的input file 是定长时,  control file 中的 PRESERVE BLANKS 有效,因为 SQLLDR默认是去除空格的,如果不加这个参数,则自动去除空格,加则保留空格入库。

以下为control file 例子。

--目标表结构

createtable CC
(
  A VARCHAR2(10),
  B VARCHAR2(10),
  D VARCHAR2(10)
);


--定长情况控制文件

load data
infile '/home/a.dat'truncatePRESERVE BLANKSintotable cc
(
a POSITION(1:5),
b POSITION(6:11),
d POSITION(12:13)
)

--定长情况数据文件

aaa  bbb   cc
abcd bcde  aa
--竖线分割情况数据文件
aaa|bbb  |cc
abcd|bcde|aa
--竖线分割情况控制文件
load data
infile '/a.dat'truncate
into table cc
fields terminated by '|'
(
a "trim(:a)",
b "trim(:b)",
d "trim(:d)"
)


0

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

    发评论

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

      

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

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

    新浪公司 版权所有