gpt4 book ai didi

sql-server-2008 - 批量插入失败 "Bulk load data conversion error (truncation)"

转载 作者:行者123 更新时间:2023-12-02 05:33:40 26 4
gpt4 key购买 nike

我已经使用 SQL Server 的BULK INSERT 任务完成了数百次数据导入,但这次我收到了一个不熟悉的错误,并且我已尝试通过 Google 进行故障排除但无济于事。下面是我在逗号分隔文件中使用的代码,其中新行由换行符指示:

BULK INSERT MyTable
FROM 'C:\myflatfile.txt'
WITH (
FIELDTERMINATOR = ','
,ROWTERMINATOR = '/n')
GO

它始终如一地工作,但现在在一个带有日期和速率的简单文件上,它失败并出现错误“消息 4863,级别 16,状态 1,行 1 批量加载数据转换错误(截断)行1,第 2 列 (ColumnTwo)。”当我查看文件时,我不明白为什么会失败(通常 Google 故障排除表明分隔符可能在一行中多次存在,这会引发此错误)。从文件中,这里是前十行(注意它在第一行失败):

1961-01-01,8.2
1961-02-01,8.2
1961-03-01,7.4
1961-04-01,7.6
1961-05-01,7.8
1961-06-01,8.5
1961-07-01,9.1
1961-08-01,8.8
1961-09-01,8.4
1961-10-01,8.8

我将这些数据插入到的表有两个字段,它们是 VARCHAR(50),即使当我最初看到截断时我将数据字段扩展为 VARCHAR(2000) 并且它没有影响它。

CREATE TABLE MyTable (
ColumnOne VARCHAR(50),
ColumnTwo VARCHAR(50)
)

我还尝试删除所有的破折号,看看是不是把事情搞砸了(尽管我已经使用相同的代码用破折号完成了大量的数据导入,并且它没有错误地工作),但它仍然收到相同的错误消息.

直接导入(通过 Tasks)和 SSIS 一样有效,但是这段代码失败了怎么办,因为它应该做完全相同的事情?

最佳答案

问题可能是行终止符因文件格式而无法正常工作。

尝试:

ROWTERMINATOR = '0x0a'

编辑

实际上我只是注意到您使用的是正斜杠,它应该是反斜杠,所以这可能有效:

ROWTERMINATOR = '\n'

关于sql-server-2008 - 批量插入失败 "Bulk load data conversion error (truncation)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15161088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com