合 MSSQL导入示例数据库AdventureWorks报错 出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。
Tags: 故障处理MSSQLSQL ServerAdventureWorks
现象
使用脚本方式导入SQL Server的示例数据库时报错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | *** Loading Data Loading [Person].[Address] 消息 4864,级别 16,状态 1,第 1803 行 第 1499 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 1687 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 5167 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 6612 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 7020 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 7028 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 7295 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 7696 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 9639 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 11003 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4864,级别 16,状态 1,第 1803 行 第 14590 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。 消息 4865,级别 16,状态 1,第 1803 行 由于超过了最大错误数(10),无法进行大容量加载。 消息 7399,级别 16,状态 1,第 1803 行 链接服务器 "(null)" 的 OLE DB 访问接口 "BULK" 报错。提供程序未给出有关错误的任何信息。 消息 7330,级别 16,状态 2,第 1803 行 无法从链接服务器 "(null)" 的 OLE DB 访问接口"BULK"提取行。 |
分析
Address.csv文件问题。
解决
1、主要是[Person].[Address]表的csv文件有问题,可以考虑不导入该表,或者修改导入语句,添加 MAXERRORS = 20000
,如下为:
1 2 3 4 5 6 7 8 9 10 11 | BULK INSERT [Person].[Address] FROM '$(SqlSamplesSourceDataPath)Address.csv' WITH ( CHECK_CONSTRAINTS, CODEPAGE='ACP', DATAFILETYPE = 'char', FIELDTERMINATOR= '\t', ROWTERMINATOR = '\n', KEEPIDENTITY, TABLOCK, MAXERRORS = 20000 ); |