Синтаксическая ошибка при извлечении Excel - PullRequest
0 голосов
/ 30 апреля 2010
Procedure USP_UploadTraining  
@filePath varchar(100)
AS  

BEGIN  

 Insert into Training_TRNS (EmpName,EmpJobFunction,EmpRegion,SpeCourse_ID,status,DueDate)  
 sCreate elect   F2+' '+F3 as Name,F4 as JobFunction, F6 as EVPRegion, F7 as CourseTitle,F8 as Status, convert(varchar,F9,101) as DateAcq   
 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',  
 'Excel 8.0;Database='@filePath'', 'SELECT * FROM [Sheet1$]')  
 where f2!='First Name'  

END


it's give syntax error can anyone this modify.

1 Ответ

0 голосов
/ 30 апреля 2010

вам нужно использовать Sp_ExecuteSql для этого, потому что вы должны заменить @filePath при запуске запроса

Попробуйте следующий запрос

 Create Procedure USP_UploadTraining
@filePath varchar(100) AS

BEGIN
DECLARE @ParmDefinition nvarchar(500);
SET @ParmDefinition = N'@filePath1 varchar(100)';
DECLARE @SQLString nvarchar(max);

SET  @SQLString='Insert into Training_TRNS (EmpName,EmpJobFunction,EmpRegion,SpeCourse_ID,status,DueDate)
select F2+'' ''+F3 as Name,F4 as JobFunction, F6 as EVPRegion, F7 as CourseTitle,F8 as Status, convert(varchar,F9,101) as DateAcq
FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
''Excel 8.0;Database= @filePath'', ''SELECT * FROM [Sheet1$]'')
where f2!=''First Name'''


EXECUTE sp_executesql
     @SQLString
    ,@ParmDefinition
    ,@filePath1 = @filePath
    ;


END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...