Declare @StrSQL nvarchar(200)
Set @StrSQL= N'Excel 12.0; Database=C:\CDSInput/202408_cdsaccnt.xls; HDR=Yes; IMEX=1'
INSERT INTO @cms
SELECT
(중략)
FROM OPENROWSET('Microsoft.Ace.OLEDB.12.0',
@strSQL,
'SELECT * FROM [cms$]')
위 쿼리는 엑셀을 읽어오는 저장프러시져의 일부입니다.
엑셀파일이 매달 바뀌므로 파일이름을 포함한 문자열을 매개변수로 전달하면 '@strSQL' 근처의 구문이 잘못되었습니다.'라는 에러를 냅니다.
Set @StrSQL= N'C:\CDSInput/202408_cdsaccnt.xls; HDR=Yes; IMEX=1'
INSERT INTO @cms
SELECT
(중략)
FROM OPENROWSET('Microsoft.Ace.OLEDB.12.0',
'Excel 12.0; Database=' + @strsql ,
'SELECT * FROM [cms$]')
이렇게 하면 ' '+' 근처의 구문이 잘못되었습니다.'라는 에러를 냅니다.
FROM OPENROWSET('Microsoft.Ace.OLEDB.12.0',
'Excel 12.0; Database=C:\CDSInput/202408_cdsaccnt.xls; HDR=Yes; IMEX=1',
'SELECT * FROM [cms$]')
이렇게 하면 잘 되거든요.
Execute sp_executesql @strSQL를 이용하라는 말이 있던데 잘 모르겠고...
어떻던 변동적인 엑셀파일명을 OPENROWSET함수에 전달하는 방법을 부탁드립니다