关于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.
...全文
887 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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,140

社区成员

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

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