Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS BCP&;平面文件-文件中的记录数量是否有限制?_Ssis - Fatal编程技术网

SSIS BCP&;平面文件-文件中的记录数量是否有限制?

SSIS BCP&;平面文件-文件中的记录数量是否有限制?,ssis,Ssis,我正在处理的文件大约有2.07亿行。在SSIS中,它不断失败 数据文件中第1行第2列的列太长。验证是否正确指定了字段终止符和行终止符 现在,当我复制一大块行并放入另一个txt文件并导入时,我没有得到错误 如果我不使用批量插入并使用常规数据流任务,我可以将行放入sql。有两件事需要检查: 列2的列长度定义。它可能被设置为100之类的值,然后您尝试导入一行,该行的列长度高于该列 如果有可能出现在数据内部的列分隔符,请选中。你得到了一个带有的文件作为分隔符,当您得到包含分号的值时,平面文件将遇到问题

我正在处理的文件大约有2.07亿行。在SSIS中,它不断失败

数据文件中第1行第2列的列太长。验证是否正确指定了字段终止符和行终止符

现在,当我复制一大块行并放入另一个txt文件并导入时,我没有得到错误


如果我不使用批量插入并使用常规数据流任务,我可以将行放入sql。

有两件事需要检查:

  • 2
    的列长度定义。它可能被设置为
    100
    之类的值,然后您尝试导入一行,该行的列长度高于该列

  • 如果有可能出现在数据内部的列分隔符,请选中。你得到了一个带有
    的文件
    作为分隔符,当您得到包含分号的值时,平面文件将遇到问题


  • 该文件相当长,但我认为与此无关,因为错误可能是其他原因。

    您可以做的另一件事是确保在oledb目标上关闭大容量插入。在极少数情况下,我会得到不插入的记录


    实际上,如果有人知道这是为什么,我很想知道。

    我成功地将BCP应用到一个较小版本的大文件……但是当我尝试大文件时,我得到了错误。考虑下面的情况:通过创建和配置一个新的任务来导入一个平面文件,平面文件将猜测每个导入列的输出列长度。为了猜测,它使用前100行。因此,如果有100个列值的长度为10,而值101的长度为20,则任务将失败。这可能是文件内部的一个错误,例如缺少分隔符,或者值变化太大。