关于sqlldr的问题,没找到解决办法?

xingshen100 2014-07-08 05:12:24
我在脚本中sqlldr指令load一个1G多的数据文件进一个表中。
报错信息:Physical record in data file(/home/weblogic/data/kna.txt) is longer than the maximum(1048576)
the load was aborted because SQL Loader cannot continue.
...全文
780 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
majia29 2014-07-12
  • 打赏
  • 举报
回复
按说是readsize的问题,不过设置到800M都能错,那我猜测是在windows环境下,导入unix格式文件,由于回车换行的差异导致所有记录都被认为成一行记录了。
xingshen100 2014-07-09
  • 打赏
  • 举报
回复
引用 10 楼 wildwave 的回复:
记录长度,和字段数没太大关系。sql*loader一次性从文件中读取若干记录到缓冲区中,然后commit。记录较长的话,默认的缓冲区大小可能不足以容纳这些记录 应该设成多大合适不好说,设成20M(20971520)试试
还是不行 我试了800M的 只是时间长点 最后还是同样报错 我设置1G的,结果报System error:cannot allocate memory 错误
小灰狼W 2014-07-09
  • 打赏
  • 举报
回复
记录长度,和字段数没太大关系。sql*loader一次性从文件中读取若干记录到缓冲区中,然后commit。记录较长的话,默认的缓冲区大小可能不足以容纳这些记录 应该设成多大合适不好说,设成20M(20971520)试试
xingshen100 2014-07-09
  • 打赏
  • 举报
回复
引用 7 楼 wildwave 的回复:
和数据文件大小没什么关系。这是因为记录较长,而缓冲区太小 指定READSIZE参数来把缓冲区增大,这个值默认是1048576
我就20个字段,你怎么说纪录过长呢?
xingshen100 2014-07-09
  • 打赏
  • 举报
回复
引用 7 楼 wildwave 的回复:
和数据文件大小没什么关系。这是因为记录较长,而缓冲区太小 指定READSIZE参数来把缓冲区增大,这个值默认是1048576
缓冲区大小设置成多少了呢?就是这个值根据什么来设置大小?
小灰狼W 2014-07-09
  • 打赏
  • 举报
回复
和数据文件大小没什么关系。这是因为记录较长,而缓冲区太小 指定READSIZE参数来把缓冲区增大,这个值默认是1048576
xingshen100 2014-07-09
  • 打赏
  • 举报
回复
引用 5 楼 f_ky 的回复:
从错误信息字面上看好像是文件太大了! linux下,用split之类的工具把文件分割成若干的小块文件再试试看!
你知道sqlldr 命令有没有什么参数可以设置允许load的数据文件大小的吗?
wumugulu 2014-07-09
  • 打赏
  • 举报
回复
从错误信息字面上看好像是文件太大了! linux下,用split之类的工具把文件分割成若干的小块文件再试试看!
xingshen100 2014-07-09
  • 打赏
  • 举报
回复
引用 3 楼 zlloct 的回复:
[quote=引用 2 楼 xingshen100 的回复:] [quote=引用 1 楼 zlloct 的回复:] [quote=引用 楼主 xingshen100 的回复:] 我在脚本中sqlldr指令load一个1G多的数据文件进一个表中。 报错信息:Physical record in data file(/home/weblogic/data/kna.txt) is longer than the maximum(1048576) the load was aborted because SQL Loader cannot continue.
文件里的内容的问题 有个字段的内容超过最大的限制了,就是说,可能是你的分隔符定义的有问题 或者生成文件的时候有一行记录的某个字段分隔的不正确[/quote] 你这个回答我怎么好像在什么地方见过呢?[/quote] 恩,网上找了一下关于这个错误,觉得这个很有道理[/quote]我的应该不是,我提取一部分测试是好的
CT_LXL 2014-07-08
  • 打赏
  • 举报
回复
引用 2 楼 xingshen100 的回复:
[quote=引用 1 楼 zlloct 的回复:] [quote=引用 楼主 xingshen100 的回复:] 我在脚本中sqlldr指令load一个1G多的数据文件进一个表中。 报错信息:Physical record in data file(/home/weblogic/data/kna.txt) is longer than the maximum(1048576) the load was aborted because SQL Loader cannot continue.
文件里的内容的问题 有个字段的内容超过最大的限制了,就是说,可能是你的分隔符定义的有问题 或者生成文件的时候有一行记录的某个字段分隔的不正确[/quote] 你这个回答我怎么好像在什么地方见过呢?[/quote] 恩,网上找了一下关于这个错误,觉得这个很有道理
xingshen100 2014-07-08
  • 打赏
  • 举报
回复
引用 1 楼 zlloct 的回复:
[quote=引用 楼主 xingshen100 的回复:] 我在脚本中sqlldr指令load一个1G多的数据文件进一个表中。 报错信息:Physical record in data file(/home/weblogic/data/kna.txt) is longer than the maximum(1048576) the load was aborted because SQL Loader cannot continue.
文件里的内容的问题 有个字段的内容超过最大的限制了,就是说,可能是你的分隔符定义的有问题 或者生成文件的时候有一行记录的某个字段分隔的不正确[/quote] 你这个回答我怎么好像在什么地方见过呢?
CT_LXL 2014-07-08
  • 打赏
  • 举报
回复
引用 楼主 xingshen100 的回复:
我在脚本中sqlldr指令load一个1G多的数据文件进一个表中。 报错信息:Physical record in data file(/home/weblogic/data/kna.txt) is longer than the maximum(1048576) the load was aborted because SQL Loader cannot continue.
文件里的内容的问题 有个字段的内容超过最大的限制了,就是说,可能是你的分隔符定义的有问题 或者生成文件的时候有一行记录的某个字段分隔的不正确

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧