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

Откуда:
Сообщений: 566
Добрый день!
Из БД собираю строку @var в html виде и пытаюсь вставить её в текстовый файл.
Строка @var корректно собирается, но при выводе в файл ошибка:
"Непредвиденное появление: <."
Понятно, что в в строке содержатся эти символы.
В чем ошибка и как вставить текст переменной @var корректно в файл?
Спасибо.

DECLARE @var varchar(max)
DECLARE @cmd VARCHAR(4000)

Set @var = '<html><head>' +char(13)+char(10)+'<style type="text/css">' +'table {' +char(13)+char(10)+'  font-family:Arial,sans-serif;' +char(13)+char(10)+'  font-size:10pt;' +char(13)+char(10)+'  border-collapse:collapse;' +char(13)+char(10)+
'}' +char(13)+char(10)+'td {' +char(13)+char(10)+'  border:0.5pt solid #b9c0d4;' +char(13)+char(10)+'}' +char(13)+char(10)+'</style></head>' +char(13)+char(10)+'<body><table widht=2000 cellpadding=3 cellspacing=0>' +char(13)+char(10)+
(
select 
'<tr>' + --Начало строки
'<td>' + isnull(a,'') + '</td>'+ --Строка обычная
'<td>' + isnull('<a href="' + h + '">' + a + '</a>','') + '</td>' + --Строка с гиперссылкой
'</tr>' +char(13)+char(10) --Конец строки
  from dbo.Z
  for xml path(''), type
).value('text()[1]','varchar(max)')
+ '</table></body></html>' 

SET @cmd = 'echo '+ @var  + ' > F:\ZImp.txt'
EXEC ZI..xp_cmdshell @cmd
18 окт 13, 17:25    [14999694]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lexx_SQL
но при выводе в файл

Вы какую команду называете "вывод в файл" ?
Эту - 'echo '+ @var + ' > F:\ZImp.txt' ?
18 окт 13, 17:27    [14999703]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Glory,
да..это неправильно?
Как корректно написать?
18 окт 13, 17:32    [14999729]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lexx_SQL
да..это неправильно?

А вы пробовали в командной строке windows выполнить то, что вы получили в переменной @cmd ?

Lexx_SQL
Как корректно написать?

О том, как вывести результаты запроса в файл с помощью TSQL, написано в ФАК
18 окт 13, 17:35    [14999739]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Glory,
у меня проблема как в @cmd корректно вставить переменную @var.
Если просто запрос делаю обычный "select * from Z" , то все выгружается. Когда подставляю @var...ничего.

SET @cmd='sqlcmd -S SBS -E -h -1 -Q "Select '+@var+'" -o F:\ZImp_1.txt -u -W -s '
EXEC @result = ZImport..xp_cmdshell @cmd, no_output
18 окт 13, 18:12    [15000076]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Lexx_SQL
Glory,
у меня проблема как в @cmd корректно вставить переменную @var.
Если просто запрос делаю обычный "select * from Z" , то все выгружается. Когда подставляю @var...ничего.

SET @cmd='sqlcmd -S SBS -E -h -1 -Q "Select '+@var+'" -o F:\ZImp_1.txt -u -W -s '
EXEC @result = ZImport..xp_cmdshell @cmd, no_output


а если написать

select @var
select @cmd
18 окт 13, 18:17    [15000101]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Winnipuh,
Не помогло
18 окт 13, 18:22    [15000128]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Lexx_SQL,
По смыслу еще нужно еще в двойные ковычки её заключить
SELECT @cmd='sqlcmd -S SBS -E -h -1 -Q "Select '''+@var+'''" -o F:\ZImp_1.txt -u -W '

Но тоже не работает....
18 окт 13, 18:34    [15000177]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Lexx_SQL
Winnipuh,
Не помогло


я имел в виду посмотреть какие строки
18 окт 13, 18:51    [15000268]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить