有时候我们需要从Excle中的数据导入到sql server中而sql server恰好没安装Excle的数据导入插件,这时候我们可以选择将Excle文件中每一个sheet转换成.CSV或者.TXT文件导入sql server数据库中,然而在导入过程中肯定都会遇到一系列问题:字符编码导致的乱码问题、导入数据突然多出莫名其妙的引号 分号等问题,下面介绍一下导入过程中容易踩坑的地方以及其解决方法.
1、导入数据中文乱码问题:
出现中文乱码问题的地方一般有2个:
1、数据源文件的编码(.CSV .TXT.........)
我们首先需要确定的是,我们从excle中另存的数据文件当时是按什么编码进行存储的,是Unicode编码还是UTF-8编码存储的,很多人往往在保存的时候不注意文件的编码从而导致在导入数据库的时候才发现问题。保存的时候看好时按什么字符集编码的!
当然如果数据库是按照Unicode编码的我们想要从Excle导出一个Unicode编码的.CSV文件怎么办呢?
解决方法:
先将保存的.csv文件改成.txt文件 然后打开它另存为,txt文件的另存为可以选择文件字符编码集,操作如下:
保存完成后去数据库导入该.CSV文件
2 数据库导入存在多余符号问题
有时候我们在导出excle文件数据后会出现所有数据都在一行的问题例如下图这种情况
这种数据在导入数据库的时候会出现多余分号(")问题
如下情形
SQL 导入.CSV文件
我们会发现每一行的首尾都会出现一个多余的双引号(".............."),这种情况如何处理
处理方案:
注意这里如果是单一列出现多余分号使用文本限定符号是可行的,但是这种情况下不能使用文本限定符进行操作,我们需要将你的数据源文件(.CSV)转换成.txt文件然后用查找替换的方式将所有的双引号替换成空即可!
如果是单一列出现这种多余的符号问题我们只需要在文本限定符中添加该符号即可过滤筛选!
过滤完成后即可看到正常数据
然后点击下一步,选择你要导入的数据库
点击下一步完成即可成功导入,
注意:有些数据在导入的时候默认类型类nvarchar(50)如果个别字段超出长度就会发生导入报错,这时候你需要在导入的时候设置一下每个字符串的最大长度,根据长度不宜选过大,也不宜过小