ExcelファイルをSQLサーバーにエクスポートするために、システムからExcelファイルをアップロードするためにasp.net fileuploadコントロールを使用しています。パスからファイルをアップロードすると、フルパスではなくファイル名のみがロードされます。SQLサーバーストアドプロシージャでExcelファイルを実行するにはフルパスが必要です.Excelのフルパスストアドプロシージャがないと機能しないためです。どのように問題を解決できますか?
これは、Excel ファイルのフル パスを必要とするストアド プロシージャです。そのため、フル パスを取得する必要があります。
alter procedure [dbo].[sp_excelforgeneralholidays](@filname nvarchar(max),@getdate datetime,@adminid int)
as
declare @datavar nvarchar(max)
declare @sql varchar(1000)
set @datavar = 'Excel 12.0;Database=' + @filname
set nocount on
begin
set @sql ='insert into Generalholyday_details(Date,Day,Reason) SELECT * FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'','''+@datavar+';HDR=YES'',''SELECT Date,Day,Reason FROM [Sheet1$]'')'
exec (@sql)
end