向SQL2005导入Excel数据出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误0xc020901c

时间:2023-02-13 09:34:21

 

    今天在向SQL2005导入Excel数据时,出现以下错误:

 

向SQL2005导入Excel数据出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误0xc020901c

图1.1 导入错误

 

 

向SQL2005导入Excel数据出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误0xc020901c

图1.2 错误报告

 

    经过修改多次“hw_content”列的数据,也还是出现上面的错误,起初认为是“hw_content”列的内容格式不对,是不是含有不匹配的字符。但查找了多次都没发现有什么另类的字符。

    仔细一看出错原因“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”,说明是“hw_content”列的数据被截断了,为什么呢?

    原来在sql2005处理导入的excel数据时,为了得出各字段的属性,sql2005会根据此字段的前面8行(取此8行中最大的)数据的类型、大小来确定此字段的属性值。

    这样一来,查了一下将要导入的excel数据,发现“hw_content”列的前8行的字符数为165,而在第133以后行的字符数据为378。

 

    为了验证上面的说法,将“hw_content”列第132行以后的数据删除,即前面的132行数据的字符数都小于255,导入结果如下:

 

向SQL2005导入Excel数据出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误0xc020901c

图1.3 导入正确

 

    如上图所示,上传已经成功,且“hw_content”列的属性值为向SQL2005导入Excel数据出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误0xc020901c,即为nvarchar(255),大小为255个字符。

 

    如果想导入原先的excel数据,必须将“hw_content”列的前面几行的字符数改大,才能导入正确的数据,也属性也变成向SQL2005导入Excel数据出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误0xc020901c 。