微软sqlserver服务器版本14.0.1000,也奏是sqlserver2017。
ssms版本10.50,也走势2008R2。
在执行导入数据的过程中,导入第一次指定的文本文件编码为936,导入正常,导入第二次的文本文件编码还是936,下面这个框框
选择完成开始无脑下一步下一步,结果就报错,查看错误信息,很稀奇,大概意思是编码错误。
错误引用:错误 0xc02020f4: 数据流任务 1: 由于为列“列 1”指定了多个代码页(936 和 949),无法处理此列。
(SQL Server 导入和导出向导)。
很好奇,都指定了两个文件编码为936,为啥子说我还指定了一个949,查查949为朝鲜语。瞬间想起需要导入的两个文本文件来源是从朝鲜拷贝回来的数据库中导出的。
问题就在这里,数据库的最原始编码为949,虽然从数据库中导出两个文本文件编码为936,这两个文本文件里面的内容编码其实还是949(936编码中木有朝鲜语字符),里面还有朝鲜语也可以说是棒子语。解决方案就是在第一个图片里面选择代码页那个地方选择编码为949,再重新导入,成功。
总结:在sqlserver中导入文本文件,文件内容字符编码和文件编码都必须统一。
吐槽:sqlserver的到导入设置真滴艾次,本大爷都已经告诉导入工具了都按936编码解析就完了,没得的就乱码不就完了吗,非的报错导不进,这个地方我也只需要其中一列数据,告诉它了这个文件编码格式为936还得自己去解析成其他编码,这个是保障数据正确还是干啥?