【问题标题】:Unexpected END OF FILE while processing row处理行时出现意外的 END OF FILE
【发布时间】:2016-12-13 10:10:51
【问题描述】:

将输入文件复制到空数据库表时出现以下错误。输入文件只有 56732 行,但是第 56733 行出现错误:

continue
* * * * * * * * * *
copy table temptable
(
abc     = c(3),
bcao    = c(1),
cba     = c(10),
test    = c(1)nl   
)
from 'tempfile'
Executing . . .

E_CO0024 COPY: Unexpected END OF FILE while processing row 56733.

E_CO002A COPY: Copy has been aborted.

有人知道为什么要处理额外的行吗?我还有其他四个格式完全相同但数据不同的文件,它处理得很好。

不知道为什么会这样……

【问题讨论】:

    标签: sql insert sql-insert bulkinsert ingres


    【解决方案1】:

    最可能的原因是您的最后一行数据后有一些空格或类似内容。您已在测试中设置了一个新行作为分隔符,因此文件需要以新行结尾。删除数据后非空白新行的任何内容。

    举个例子。使用下面的代码:

    DECLARE GLOBAL TEMPORARY TABLE test (
        v int
    ) ON COMMIT PRESERVE ROWS WITH NORECOVERY;
    
    COPY test (
        v = c(5)nl
    ) FROM 'J:\test.csv';
    

    以下数据将导致第 4 行出错:

    34565
    37457
    35764
    45685
    

    该数据在第 5 行出现错误(标点符号用于显示问题,但它可能是您自己文件中的空格或制表符):

    34565
    37457
    35764
    45685
    .
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-11
      • 2015-10-15
      • 1970-01-01
      • 2018-06-23
      • 2015-04-18
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多