我有一个固定长度数据的文本文件。这是我的表:
create table myBulkInsert(
MaxData Varchar(Max)
)
x.fmt包含:
10.0
1
1 SQLCHAR 8 0 "" 1 MaxData SQL_Latin1_General_CP1_CI_AS
当我发出以下内容时:
bulk insert myBulkInsert
from 'C:\inetpub\ftproot\TextFile.txt'
WITH (
FORMATFILE = 'C:\inetpub\ftproot\Client.fmt'
);
我明白了:
Msg 4866,Level 16,State 17,Line 1批量加载失败。专栏 在第1行第1列的数据文件中太长。验证是否 字段终止符和行终止符是正确指定的。消息7399, 级别16,状态1,行1 OLE DB提供程序“BULK”用于链接服务器 “(null)”报告错误。提供商没有提供任何信息 关于错误。消息7330,级别16,状态2,行1无法获取 来自OLE DB提供程序“BULK”的行,用于链接服务器“(null)”。
奇怪的是,我正在使用带有逗号分隔文本文件的批量插入,它运行良好,所以我认为这不是权限错误。
我将其作为具有最大值的1字段的原因是为了简化示例。 一旦我将这个1字段工作,我将更改布局以包括所有字段及其长度。