【发布时间】:2016-02-29 17:43:22
【问题描述】:
我正在使用批量插入导入 rpt 文件,但出现以下错误:
消息 4866,第 16 级,状态 1,第 1 行
批量加载失败。数据文件中第 1 行第 1 列的列太长。请验证是否正确指定了字段终止符和行终止符。消息 7399,第 16 层,状态 1,第 1 行
链接服务器“(null)”的 OLE DB 提供程序“BULK”报告了错误。提供者没有提供有关错误的任何信息。消息 7330,第 16 级,状态 2,第 1 行
无法从链接服务器“(null)”的 OLE DB 提供程序“BULK”中获取行。
我认为这是由于文件列之间的空格,有什么办法可以修剪这些空格?
谢谢!
【问题讨论】:
-
我认为 rpt 代表报告输出文件,此输出看起来像固定宽度数据或系统数据格式 (SDF) 数据。您是否有机会使用 C# 来完成这项工作?使用 C#(或任何其他语言)很容易从第一行解析列名,并从第二行的破折号确定宽度以生成可用于将数据插入 SQL 服务器的数据表或读取器(可能使用 SqlBulkCopy班级)。我从来没有发现 SQL Server 本身在导入文本文件时很直观。
标签: sql sql-server sql-server-2008-r2 bulkinsert