【问题标题】:BULK INSERT: FlatFile having FieldTerminator, Carriage Return and New Line characters as RowTerminator批量插入:具有字段终止符、回车符和换行符作为行终止符的平面文件
【发布时间】:2017-01-17 05:54:26
【问题描述】:

我正在尝试导入以管道分隔的平面文件,但出现以下错误:

消息 4832,第 16 级,状态 1,第 1 行 批量加载:在数据文件中遇到了意外的文件结尾。 消息 7399,第 16 层,状态 1,第 1 行 链接服务器“(null)”的 OLE DB 提供程序“BULK”报告了错误。提供商没有提供有关该错误的任何信息。 消息 7330,第 16 层,状态 2,第 1 行 无法从链接服务器“(null)”的 OLE DB 提供程序“BULK”中获取行。

我的代码:

    IF OBJECT_ID('tempdb..##tblImport') IS NOT NULL DROP TABLE tempdb..##tblImport;

CREATE Table ##tblImport  (VoucherNumber BIGINT,Currency VARCHAR(100),VoucherAmount MONEY,  RetailAmount MONEY, VoucherDuration INT, ServiceProviderGroupID INT, BatchNumber BIGINT, SerialNumber int)

    DECLARE @SQL VARCHAR(2000)
    DECLARE @FilePath VARCHAR(1000)

    SET @FilePath = 'C:\Users\Documents\Sample.txt'
    SET @SQL = 'bulk insert ##tblImport from ''C:\Users\Documents\Sample.txt''
    WITH
    (
        FIELDTERMINATOR = ''|'',
        ROWTERMINATOR = ''|\n''
     )'

    EXEC(@SQL)

SELECT * FROM ##tblImport

如果我删除行尾的管道并尝试将代码中的行分隔符更改为 '\n' 我会得到相同的错误。我尝试将 SERIAL NUMBER 列的类型更改为 VARCHAR(MAX) 然后最后一列填充所有记录。然后在 \n 之前给出空间再次给出上述错误。有人可以帮我输入数据的代码吗?

【问题讨论】:

  • FIELDTERMINATOR = '' |'', ROWTERMINATOR = '' |\n'' 如果我在分隔符之前给出空格,则会收到以下错误。 第 1 行第 8 列(序列号)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。
  • 仅供参考:@FilePath 变量已声明但未使用。
  • 是的。我会改变的。谢谢你。 @SQL_Underworld
  • 平面文件的第一行是什么样的?您是否查看过 FIRSTROW 选项的用法?
  • 我还没有尝试过 FIRST ROW 选项。该文件没有列标题,整个文件有这样的行 2178058358449632|BWP|30.00|30.00|60|1|000000101205|0000000002128228|

标签: sql-server delimiter bulkinsert


【解决方案1】:

'|'分隔字段/列,'|\n' 分隔记录/行。这意味着每条记录都应该以 '|\n' 结尾,以指示下一条记录的开始。

【讨论】:

  • 是的。但这并没有发生。该文件有问题,我无法找到它,因为当我删除每行末尾的管道分隔符时,它什么也没有。
  • 那么文件有问题,不是你的代码?
  • 是的。但我需要改进我的代码来克服这个问题。
【解决方案2】:

我在 SQL Server 的某处读到,默认情况下,回车符 \r 使用换行符 \n(即 [CR][LF])。但这是不正确的。我的文件在每一行的末尾都有回车和换行符。所以我改变了行分隔符如下

ROWTERMINATOR = ''|\r\n''

它确实工作得很好,我的问题得到了解决。

【讨论】:

    猜你喜欢
    • 2015-02-04
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多