读书人

sql-excel导入有关问题

发布时间: 2013-06-26 14:29:32 作者: rapoo

sql-excel导入问题


declare @p as nvarchar(400)
declare @m as nvarchar(400)
set @p='d:\'
set @m='mndepart.xls'
select @p+@m
--消息 7399,级别 16,状态 1,第 6 行
--链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
--消息 7303,级别 16,状态 1,第 6 行
--无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
select * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=@p+@m;
Extended Properties=Excel 5.0')...[Sheet1$];
--可以显示
select * from opendatasource('microsoft.jet.oledb.4.0',
'data source=d:\mndepart.xls;
extended properties=excel 5.0')...[sheet1$];

文件路径不能存到变量里面吗。。 sql,?opendatasource
[解决办法]
'Data Source=@p+@m;
Extended Properties=Excel 5.0'

改成
'Data Source=' +@p+@m+ ';
Extended Properties=Excel 5.0'

变量与字符串是需要用"+"来连接的
[解决办法]
变量应该是‘+@变量+’
[解决办法]
这样就不会报错了:

declare @p as nvarchar(400)
declare @m as nvarchar(400)
declare @sql as nvarchar(max)
set @p='d:\'
set @m='mndepart.xls'

set @sql='select * from OPENDATASOURCE(''Microsoft.Jet.OLEDB.4.0'',''Data Source='+@p+@m+';Extended Properties=Excel 5.0'')...[Sheet1$];'
exec(@sql)

读书人网 >SQL Server

热点推荐