You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2008批量插入Unicode文本报"意外文件结束"错误求助

BULK INSERT导入Unicode文本时遭遇“意外文件结束”错误

环境与基础信息

SQL Server版本

Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)   
Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

目标表结构

CREATE TABLE ActualizarMasiva
(
    [barra] [varchar](150) NOT NULL,
    [articulo] [varchar](150) NULL,
    [und] [decimal](28, 0) NULL,
    [costo] [float] NULL,
    [precio1] [float] NULL,
    [margen1] [float] NULL,
    [precio4] [float] NULL,
    [margen4] [float] NULL,
    tipo_imp [varchar](50) NULL,
    [capacidad] [float] NULL,
    tipo_licor [varchar](50) NULL,
    grado_al [decimal](10,2) NULL
) ON [PRIMARY]

注:除barra列外,其余列均允许为空,文本类型已按建议使用varchar(50)

执行的BULK INSERT脚本

BULK INSERT ActualizarMasiva
FROM 'C:\Users\Administrador\Documents\CSV corrida masiva\actualizarmasivaprueba.txt'
WITH (
    FIRSTROW = 2,   --包含表头
    DATAFILETYPE = 'char',
    FORMATFILE = 'C:\Users\Administrador\Documents\CSV corrida masiva\FormatoActualizacionMasiva.fmt',
    ERRORFILE = 'C:\Users\Administrador\Documents\CSV corrida masiva\errorLog'
    );

问题详情

通过Excel保存的Unicode文本文件导入SQL Server表时,执行BULK INSERT抛出**“意外文件结束”**错误,错误日志指向第39行,但该行格式与其他行完全一致。已尝试以下操作仍未解决:

  • 修改行终止符(\r、\n、\r\n组合)
  • 调整前缀长度参数
  • 使用\0作为空终止符

寻求技术排查方向与解决方案。


排查与解决方案建议

  1. 核对格式文件与列映射
    确认.fmt格式文件中,列的数量、顺序、数据类型定义完全匹配目标表ActualizarMasiva,排查是否存在字段定义缺失或不匹配的情况,尤其是第39行对应列的定义。
  2. 检查第39行的隐藏字符
    用支持显示全字符的编辑器(如Notepad++)打开数据文件,开启“显示所有字符”功能,检查第39行是否存在不可见控制字符、全角空格,或行终止符与其他行不一致的问题。
  3. 修正DATAFILETYPE参数
    若数据文件为Unicode编码(UTF-16),需将DATAFILETYPE改为'widechar'——char仅适用于ASCII/ANSI编码文件,Unicode文件使用该参数会导致解析错误。
  4. 单独测试第39行数据
    仅保留第39行数据(移除表头),重新执行BULK INSERT,验证该行数据本身是否存在格式问题,比如decimal/float列的格式不符合SQL Server要求,或文本列包含未转义的分隔符。
  5. 检查文件权限
    确认SQL Server服务账号对数据文件、格式文件、错误日志所在目录拥有读/写权限,权限不足可能导致读取文件时异常终止。

内容的提问来源于stack exchange,提问作者Zuil Happy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 03:38:11