我使用的是:
insert into bla select *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;HDR=YES;Database=c:\bla.xls',
'select * from [Sheet1$]');但是由于某些原因,一些值包含null,尽管原始数据确实包含值(例如'abc')。这种奇怪行为的原因可能是什么。谢谢。
克里斯
发布于 2010-05-25 21:32:03
尝试添加";IMEX=1“(将所有字段作为文本读取-这可能与混合值和文本有关)。
第二个选择是尝试安装办公数据连接组件(来自http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en) --并绕过OLEDB。然后这样设置你的OPENROWSET:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=c:\bla.xls;HDR=Yes;IMEX=1','SELECT * FROM [Sheet1$]');祝好运!
发布于 2013-03-01 05:30:15
我发现将Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRows设置为零并使用IMEX=1选项可以解决这个问题。这意味着性能会下降,因为这意味着检查了整个列/表,但我没有注意到任何有意义的事情。
https://stackoverflow.com/questions/2904228
复制相似问题