Sql server 使用查询中的子字符串函数将数据从Excel导入SQL server
我基本上遵循了MSDN页面上的示例: 只有一个例外。而不是像这样的简单查询Sql server 使用查询中的子字符串函数将数据从Excel导入SQL server,sql-server,excel,oledb,Sql Server,Excel,Oledb,我基本上遵循了MSDN页面上的示例: 只有一个例外。而不是像这样的简单查询 "Select * FROM [Sheet1$]" 我想做一些更复杂的事情,比如: "Select *, SUBSTRING(COLUMN_A, 1, 5) as STRIPPED_COL_A FROM [Sheet1$]" 但我收到一条无用的异常消息“IErrorInfo.GetDescription失败,E_失败(0x80004005)” 如果我不得不猜测,问题是由于在Excel或OleDB中使用了不受支持的子
"Select * FROM [Sheet1$]"
我想做一些更复杂的事情,比如:
"Select *, SUBSTRING(COLUMN_A, 1, 5) as STRIPPED_COL_A FROM [Sheet1$]"
但我收到一条无用的异常消息“IErrorInfo.GetDescription失败,E_失败(0x80004005)”
如果我不得不猜测,问题是由于在Excel或OleDB中使用了不受支持的子字符串函数。因此,如何解决这个问题。在他们的示例中,您使用Microsoft.ACE.OLEDB驱动程序通过
Provider=Microsoft.ACE.OLEDB.12.0
或Provider=Microsoft.Jet.OLEDB.4.0
加载excel工作表,因此您必须使用MS Access中可用的查询格式和功能
Select *, MID(Column_A, <<start>>, <<length>>) as STRIPPED_COL_A from [Sheet1$]
从[Sheet1$]中选择*中间(列A)作为剥离列A
请记住其他特性,例如
不是零索引,而是以1开头作为字符串中的第一个字符。在他们的示例中,您使用Microsoft.ACE.OLEDB驱动程序通过Provider=Microsoft.ACE.OLEDB.12.0
或Provider=Microsoft.Jet.OLEDB.4.0
加载excel工作表您必须使用MS Access中提供的查询格式和功能
Select *, MID(Column_A, <<start>>, <<length>>) as STRIPPED_COL_A from [Sheet1$]
从[Sheet1$]中选择*中间(列A)作为剥离列A
请记住其他特性,例如
不是零索引,而是以字符串中的第一个字符1开头