00626 SQL Loader错误

时间:2009-10-14 18:37:11

标签: sql oracle

如何避免

"characterset conversion buffer overflow" error in sql*loader? error # 00626.

我无法在互联网上找到这个,请为我提出解决方案。

4 个答案:

答案 0 :(得分:1)

输入数据文件的字符集是什么?您可以尝试在控制文件中指定字符集:

CHARACTERSET char_set_name LENGTH SEMANTICS CHARACTER

默认情况下,如果未指定,Oracle将使用字节长度语义。因此,如果在控制文件中将字段长度定义为VARCHAR(20),则在字节语义中,您将拥有20字节缓冲区,但在字符长度语义中,您可能具有40字节缓冲区。这将是我猜测可能是错误的来源。

答案 1 :(得分:0)

这不是很多帮助,但这是Oracle错误手册对该错误所说的内容:

  

SQL * Loader-00626:字符集   转换缓冲区溢出。

     

原因:从数据文件字符集到客户端的转换   字符集需要更多的空间   分配给转换的   缓冲。转换的大小   缓冲区受最大大小的限制   一个varchar2列。

     

操作:拒绝输入记录。数据不适合   专栏。

听起来似乎没有办法在SQLLoader中解决这个问题。如果它影响少量记录,那么手动简单地处理这些记录可能是最容易的。如果有很多记录,那么您可能需要查找或创建不同的加载工具。

答案 2 :(得分:0)

您可以考虑一些想法:

  • 您可以尝试将“字符串”的不同部分加载到数据库中的不同字段中。也许这样您就可以解决限制问题。
  • 您可以尝试在其他工具中进行字符集转换。某些文本编辑器可能会为您提供一些选项..然后加载文件而不需要转换。

不确定这些想法是否有任何优点,但希望你能解决这些问题。

答案 3 :(得分:0)

感谢您的帮助。这个问题已被解决。我们拆分文件并加载块并且工作正常