ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用sqlldr工具进行数据迁移时发现的问题解决方法

利用sqlldr工具进行数据迁移时发现的问题解决方法

原创 Linux操作系统 作者:paulyibinyi 时间:2007-12-29 23:33:52 0 删除 编辑
利用oracle自带的sqlldr工具从mysql转到oracle中时,一千万条的记录迁移时间只需七,八分钟左右,真是快啊,但在迁移前也要做好相关的准备工作,下面是我发现的两个不容易碰到的问题

1.加载clob大类型对象时的问题

当使用sqlldr加载很长的字符串(超过4000)到表中的clob类型中时,老是报错: 数据文件的字段超出最大长度.查找相关资料后得知,sqlldr每次读入文件中数据流的数据类型默认为CHAR ,长度为 255 .所以只要超过255字符的段都会报这个错.解决方法很简单,在控制文件中字段后添加上char(1000000),例如:

LOAD DATA
INFILE *
INTO TABLE DEMO
TRUNCATE
FIELDS TERMINATED BY ','
(d1 ,
d2 char(1000000)
)

其中表demo的列d2是clob类型,当然1000000只是随便用的一个大数字,只要保证加载的长度不超这个数字就成

2.在导出文本文件中,一条记录多行显示

load data
infile 'ABC.txt' "str '
'"
continueif last="," //告诉sqlldr在每行的末尾找逗号 找到逗号就把下一行附加到上一行,红线部分就是需要在控制文件中加上的语句
into table ABC

fields terminated by ' '
trailing nullcols
(ID,
TITLE_GB2312,
TITLE_BIG5,
TITLE_EN,
COLOR,
SELECT_TYPE,
URL_GB2312,
URL_BIG5,
URL_EN,
CONTENT_GB2312,
CONTENT_BIG5,
CONTENT_EN char(1000000),
FREQUENTLY,
DEFAULT_,
CREATED_DATE,
LAST_MODIFIED_DATE,
STATUS)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7199859/viewspace-62550/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 2007年总结
请登录后发表评论 登录
全部评论
学习数据库

注册时间:2007-12-11

  • 博文量
    902
  • 访问量
    6576115