Как записать вывод хранимой процедуры непосредственно в файл на FTP, не используя локальные или временные файлы?

11
задан Community 23 May 2017 в 12:02
поделиться

5 ответов

Если бы Вам разрешили реализовать блоки интеграции CLR, то Вы могли бы на самом деле использовать FTP, не имея необходимость писать временный файл:

public static void DoQueryAndUploadFile(string uri, string username, string password, string filename)
{
    FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(uri + "/" + filename);
    ftp.Method = WebRequestMethods.Ftp.UploadFile;
    ftp.Credentials = new System.Net.NetworkCredential(username, password);

    using(StreamWriter sw = new StreamWriter(ftp.GetRequestStream()))
    {
        // Do the query here then write to the ftp stream by iterating DataReader or other resultset, following code is just to demo concept:
        for (int i = 0; i < 100; i++)
        {
            sw.WriteLine("{0},row-{1},data-{2}", i, i, i);
        }
        sw.Flush();
    }
}
9
ответ дан 3 December 2019 в 04:15
поделиться

Существует ли сервер где-нибудь, что можно использовать, где можно создать временный файл? Если так, сделайте веб-сервис, который возвращает массив, содержащий содержание файла. Назовите веб-сервис от компьютера, где можно создать временный файл, используйте содержание массива для создания временного файла и ftp он.

Если существует не, где вообще, где можно создать временный файл, я не вижу, как Вы сможете отправить что-либо FTP.

1
ответ дан 3 December 2019 в 04:15
поделиться

Сценарий от FTP-сервера, и просто называет сохраненный proc.

0
ответ дан 3 December 2019 в 04:15
поделиться

Попытайтесь использовать хранимую процедуру CLR. Вы смогли придумывать что-то, но без первого создания временного файла, это могло бы все еще быть трудно. Вы могли настроить долю на другой машине и записать в это и затем ftp оттуда?

0
ответ дан 3 December 2019 в 04:15
поделиться

Выгода, хотя то, что я не могу создать локальный/временный файл, что я могу затем FTP.

Это ограничение не имеет никакого смысла, пытается говорить с DBA приятно и объяснить это ему. Полностью разумно для любого процесса Windows или задания создать временный файл (файлы) в соответствующем месте, т.е. %TEMP папку %. На самом деле само время выполнения SSIS часто создает временные файлы там - поэтому, если DBA позволяет Вам выполнять SSIS, он позволяет Вам создавать временные файлы :).

Пока DBA понимает, что эти временные файлы не создают проблему, или дополнительная рабочая нагрузка для него (объясните, что он не должен устанавливать специальные полномочия, или создавать резервную копию их, и т.д.), он должен согласиться позволить Вам создать их.

Единственная задача обслуживания для DBA состоит в том, чтобы периодически чистить %TEMP каталог % в случае, если Ваше задание SSIS приводит к сбою и оставляет файл. Но он должен сделать это так или иначе, как много других процессов могут сделать то же. Простое задание SQL Agent сделает это.

0
ответ дан 3 December 2019 в 04:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: