【发布时间】:2021-03-08 18:07:25
【问题描述】:
我正在尝试将一个州的选民登记 csv 文件导入 SSMS。正如预期的那样,它是一个相当大的文件,每次我尝试导入它时,我都会收到一个错误,即列的数据转换返回状态值 4 和状态文本“文本被截断或一个或多个字符在目标代码页中不匹配。”
这发生在多个不同的列上,我尝试在数据源高级设置中更改长度,我已将 DataType 更改为 Unicode 字符串 [DT_WSTR],并尝试将映射更改为 nvarchar 而不是 varchar,似乎没有任何工作。每次我尝试运行它时,我都会收到相同的错误消息。这不是导致问题的特定列,因为我删除了除一列之外的所有内容,但仍然出现错误。
我注意到这个文件中的所有内容都被双引号 "" 我不确定这是否会影响错误。如果是这样,我不确定如何将其更改为 excel 并且笔记本拒绝打开文件,因为它太大了。 Error Message Here
【问题讨论】:
-
从 varchar 更改为 nvarchar 不会更改截断,您需要更改表中 varchar 的长度。您可以首先使用所有 VARCHAR(8000) 或 VARCHAR(MAX)(或 NVARCHAR,如果您有需要它的那些数据类型)创建暂存表,然后进行第二步,将其从暂存表转移到最终表。然后,如果您遇到问题,可以在舞台上运行 len 检查,以找出导致问题的行。