Xp_cmdshell

Тема в разделе "SQL", создана пользователем lapo4ka, 6 дек 2007.

  1. lapo4ka

    lapo4ka Гость

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

    lapo4ka Гость

    придумки совесм позорные)) файлик 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 '
    ругается тоже)))
     
  3. Barmutik

    Barmutik Гость

    А пробежаться в цикле по записям курсора и значение каждой записи выкинуть в файлик?
     
  4. lapo4ka

    lapo4ka Гость

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

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

    lapo4ka Гость

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

    lapo4ka Гость

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

    lapo4ka Гость

    Если просто перечислять значения в переменной 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:
     
  8. Pasha

    Pasha Гость

    Для: lapo4ka
    Как объявлена переменная @cmd?
     
  9. lapo4ka

    lapo4ka Гость

    она sysname
     
  10. Pasha

    Pasha Гость

    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 символов, вторая - явно длинее. Обрезается и потому не работатет.
     

Поделиться этой страницей