
问题原因是Oledb提供程序
导入具有混合数据类型列的csv文件或excel文件时,它将用替换非主要类型
null。( 使用Oledb或Ace.Oledb )
解决方法
您可以通过添加包含字符串值的第一行,然后在完成提示后将其删除来进行一些变通
ID,A,B,C0,a,a,a1,12,hh,i2,ab12,tt,b3,2,aa,o4,bc12,ee,l
如果使用,它将解决此问题
IMEX=1
这会将列读取为字符串,将ID列读取为数字。(使用0)
或将
HDR=NO属性添加到连接字符串,以便标头是导入的第一行(其所有值都是字符串)
在本文中阅读有关混合数据类型的更多信息
其他方法
或者尝试在没有aceoledb提供程序的情况下实现此目的,而只是以其他方式导入csv文件,如下所示:
使用Microsoft文本驱动程序
SELECt * FROM OPENROWSET('MSDASQL','Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=C:;','SELECt * FROM abc.csv')使用批量插入
CREATE TABLE dbo.MyTable (ID INTEGER, A VARCHAr(50), B VARCHAr(50), C VARCHAr(50))BULK INSERT dbo.MyTableFROM 'C:abc.csv'WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = 'n' )
这些文章中的其他详细信息:
- 如何使用OPENROWSET导入csv文件?
- T-SQL-使用OpenRowSet读取CSV文件 (详细教程)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)