Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Openrowset - можно ли задать путь к файлу в виде переменной?  [new]
-SWAN-
Member

Откуда: Оделся, обулся - и на работу вернулся!)
Сообщений: 207
Здравствуйте Гуру SQL!
Подскажите как задать параметры для openrowset
Так работает:
select * from openrowset('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=\\WDMYCLOUD\Public\обмен\TESTLebed.xlsx;HDR=YES;IMEX=1', 'select * from [лист1$]')



пытаюсь сделать через переменную (ругается)
declare @ffilename as varchar(100)
set @ffilename='\\WDMYCLOUD\Public\обмен\TESTLebed.xlsx'
select * from openrowset('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=' + @ffilename + ';HDR=YES;IMEX=1', 'select * from [лист1$]')


может openrowset для этого не подходит?
25 мар 19, 11:27    [21842544]     Ответить | Цитировать Сообщить модератору
 Re: Openrowset - можно ли задать путь к файлу в виде переменной?  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2979
-SWAN-
Здравствуйте Гуру SQL!
Подскажите как задать параметры для openrowset
Так работает:
select * from openrowset('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=\\WDMYCLOUD\Public\обмен\TESTLebed.xlsx;HDR=YES;IMEX=1', 'select * from [лист1$]')



пытаюсь сделать через переменную (ругается)
declare @ffilename as varchar(100)
set @ffilename='\\WDMYCLOUD\Public\обмен\TESTLebed.xlsx'
select * from openrowset('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=' + @ffilename + ';HDR=YES;IMEX=1', 'select * from [лист1$]')


может openrowset для этого не подходит?

openrowset принимает только как строки константы
оберните exec
25 мар 19, 12:50    [21842680]     Ответить | Цитировать Сообщить модератору
 Re: Openrowset - можно ли задать путь к файлу в виде переменной?  [new]
-SWAN-
Member

Откуда: Оделся, обулся - и на работу вернулся!)
Сообщений: 207
HandKot,
сделал вот так
declare @strSQL as varchar(4000),@ffilename as varchar(1000)
set @ffilename='\\WDMYCLOUD\Public\обмен\tmpLebed\TESTLebed.xlsx'
set @ffilename='Excel 8.0;Database=' + @ffilename + ';HDR=YES;IMEX=1'
set @strSQL='select * from openrowset(''Microsoft.ACE.OLEDB.12.0'', ''' + @ffilename + ''', ''select * from [лист1$]'')'
exec @strSQL


ругается
The name 'select * from openrowset('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=\\WDMYCLOUD\Public\обмен\tmpLebed\TESTLebed.xlsx;HDR=YES;IMEX=1', 'select * from [лист1$]')' is not a valid identifier.


вроде всё верно, но где-то я ошибаюсь(((
25 мар 19, 13:26    [21842717]     Ответить | Цитировать Сообщить модератору
 Re: Openrowset - можно ли задать путь к файлу в виде переменной?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36987
exec (@strSQL)
25 мар 19, 13:30    [21842721]     Ответить | Цитировать Сообщить модератору
 Re: Openrowset - можно ли задать путь к файлу в виде переменной?  [new]
-SWAN-
Member

Откуда: Оделся, обулся - и на работу вернулся!)
Сообщений: 207
Гавриленко Сергей Алексеевич
exec (@strSQL)


Спасибо большое! Слона то я не приметил))))
25 мар 19, 13:32    [21842725]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить