Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Вы какую команду называете "вывод в файл" ? Эту - 'echo '+ @var + ' > F:\ZImp.txt' ? |
||
18 окт 13, 17:27 [14999703] Ответить | Цитировать Сообщить модератору |
Lexx_SQL Member Откуда: Сообщений: 566 |
Glory, да..это неправильно? Как корректно написать? |
18 окт 13, 17:32 [14999729] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
А вы пробовали в командной строке windows выполнить то, что вы получили в переменной @cmd ?
О том, как вывести результаты запроса в файл с помощью TSQL, написано в ФАК |
||||
18 окт 13, 17:35 [14999739] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
а если написать select @var select @cmd |
||
18 окт 13, 18:17 [15000101] Ответить | Цитировать Сообщить модератору |
Lexx_SQL Member Откуда: Сообщений: 566 |
Winnipuh, Не помогло |
18 окт 13, 18:22 [15000128] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
я имел в виду посмотреть какие строки |
||
18 окт 13, 18:51 [15000268] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |