1

在从 csv 文件批量插入期间,文件中的一行具有00000100008值,源(从中创建 csv 文件)和目标temptable都具有相同的字段(char(11))。

当我尝试插入时,出现以下错误:

Bulk load data conversion error (truncation) for row 1, column 1 (fieldname)

如果我删除前导 0 并将此值更改为100008csv 文件中的值,然后进行批量插入,则目标表temptable显示'++ 100008为插入值。这是为什么?我如何在不带双加号的情况下处理价值?

这是脚本:

BULK
INSERT temptable
FROM 'c:\TestFile.csv'
WITH
(
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
)
GO

编辑:来自 csv 文件的一些示例记录。

100008,111122223333,Mr,ForeName1,SurName1,1 Test Lane,London,NULL,NULL,NULL,wd25 123,test@email.com.com,NULL
322,910315715845,Ms,G,Dally,17 Elsie Street,NULL,NULL,GOOLE,NULL,DN146DU,test1@email1.com,
323,910517288401,Mrs,G,Tom,2 White Mead,NULL,NULL,YEOVIL,NULL,BA213RS,test3@tmail2.com,
4

1 回答 1

0

我的第一个想法是该文件保存在 Unix 系统上,并且您可能与不同样式的换行符不兼容。我的第一个建议是使用十六进制编辑器分析文本文件,以确定放在那里的字符。

++ 100008 基本上意味着 - 行格式与页眉不一致。解决这个问题 运行 dbcc checktable。

我希望这会对你有所帮助。

问候,

于 2012-08-15T13:40:42.717 回答