Xp_cmdshell

  • Автор темы lapo4ka
  • Дата начала
L

lapo4ka

Гость
#1
;) Добрый день! помогите пож с такой штукой.
у меня есть временная таблица #otch с полем itog (около 100 строк). надо select itog в файлик.
для этого сказали использовать xp_cmdShell. могу просто вставить какое-то значение в файлик, но не значение таблицы((((
все, что не пыталась придумать - неверно.
 
L

lapo4ka

Гость
#2
придумки совесм позорные)) файлик letter.eml уже существует.
думала использовать переменные типа system.
DECLARE @cmd sysname, @var sysname
SET @var = 'khgo'
SET @cmd = 'echo ' +@var + ' > \\100.100.100.255\obmen\letter.eml'
EXEC master..xp_cmdshell @cmd
таким способом в файлике появляется 'khgo'.

на надпись
SET @var = itog from #otch ругается
Server: Msg 156, Level 15, State 1, Line 80
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'from'.

на
exec master..xp_cmdShell 'copy itog from #otch \\100.100.100.255\obmen\letter.eml '
ругается тоже)))
 
B

Barmutik

Гость
#3
А пробежаться в цикле по записям курсора и значение каждой записи выкинуть в файлик?
 
L

lapo4ka

Гость
#4
на эту запись select @var = itog from #otch ничего не записывается.
я пробовала пытаться добавить записи, используя char(13) - обрвы строки, но на деле курсор не переводится на сл строку.
SET @var = 'sdgsdgsdg'+char(13)+'rthjtrfu'
получается просто
sdgsdgsdgrthjtrfu
я просто не знаю как так курсор сделать, что он с Xp_cmdshell сработал. в файлик выводится справка по клиенту, где между словами подтягиваются значения из разных таблиц.

сработал char(12) на перенос курсора на сл строку! подскажите - как подтянуть значения из таблиц? как это все увязать с Xp_cmdshell ?((((
 
L

lapo4ka

Гость
#5
добрый день! не помогает((( переменную не в формате sysname EXEC master..xp_cmdshel не воспринимает. пыталась просто перечислять значения в переменной sysname , но тоже не получается.
 
L

lapo4ka

Гость
#6
Можно пойти каким-нибудь другим путем? можно как-нибудь с процедуры запустить packages, который сформирует файлик и положит его куда надо?(((
 
L

lapo4ka

Гость
#7
Если просто перечислять значения в переменной system, то получается такая чушь, что даже не понятно в чем засада.
значение:
set @cmd='echo ' + ' БАНК , согласно п.2 ст.7 Федерального закона от 07.08.2001г. 115 - ФЗ '+char(12)+' rjrjrtkrtk ' +char(12)+ ' > \\100.100.100.255\obmen\qwerty.txt'
в файл записывает
значение:
set @cmd='echo ' + ' БАНК , согласно п.2 ст.7 Федерального закона от 07.08.2001г. 115 - ФЗ '+char(12)+
' rjrjrtkrtk ' +char(12)+
'X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1896'+char(12)+' БАНК '+ ' > \\100.100.100.255\obmen\qwerty.txt'
уже не записвает
просто в аналайзире выдает выдает то, что я пишу в переменную.
и мне кажется я схожу с ума - когда пишет паервый запрос, в моей ппапке с файлом, формирует такой же файл, только в имени убирает быквы с крнца. получается "qwerty.tx" :huh:
 
P

Pasha

Гость
#8
Для: lapo4ka
Как объявлена переменная @cmd?
 
P

Pasha

Гость
#10
sysname is a system-supplied user-defined data type that is functionally equivalent to nvarchar(128) and is used to reference database object names.
Первая строчка у тебя длиной 129 символов, вторая - явно длинее. Обрезается и потому не работатет.