在查询中使用子string函数将数据从Excel导入SQL服务器
我非常关注这个MSDN页面上的例子:
http://code.msdn.microsoft.com/Imoprt-Data-from-Excel-to-705ecfcd
有一个例外。 而不是一个简单的查询
"Select * FROM [Sheet1$]"
我想做一些更复杂的事情,比如:
"Select *, SUBSTRING(COLUMN_A, 1, 5) as STRIPPED_COL_A FROM [Sheet1$]"
但我得到一个无用的exception消息“IErrorInfo.GetDescription失败,E_FAIL(0x80004005)”。
如果我不得不猜测,问题是由于在Excel或OleDB中使用了不受支持的SUBSTRING函数。 那么如何解决这个问题。
在他们的例子中,您正在使用Microsoft.ACE.OLEDB驱动程序通过Provider=Microsoft.ACE.OLEDB.12.0
或Provider=Microsoft.Jet.OLEDB.4.0
加载Excel工作表,因此您将不得不使用查询格式和MS Access中可用的function。
Select *, MID(Column_A, <<start>>, <<length>>) as STRIPPED_COL_A from [Sheet1$]
请记住其他特性,如<<start>>
不是零索引,而是从1开始,这是string中的第一个字符。