Если бы Вам разрешили реализовать блоки интеграции 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();
}
}
Существует ли сервер где-нибудь, что можно использовать, где можно создать временный файл? Если так, сделайте веб-сервис, который возвращает массив, содержащий содержание файла. Назовите веб-сервис от компьютера, где можно создать временный файл, используйте содержание массива для создания временного файла и ftp он.
Если существует не, где вообще, где можно создать временный файл, я не вижу, как Вы сможете отправить что-либо FTP.
Сценарий от FTP-сервера, и просто называет сохраненный proc.
Попытайтесь использовать хранимую процедуру CLR. Вы смогли придумывать что-то, но без первого создания временного файла, это могло бы все еще быть трудно. Вы могли настроить долю на другой машине и записать в это и затем ftp оттуда?
Выгода, хотя то, что я не могу создать локальный/временный файл, что я могу затем FTP.
Это ограничение не имеет никакого смысла, пытается говорить с DBA приятно и объяснить это ему. Полностью разумно для любого процесса Windows или задания создать временный файл (файлы) в соответствующем месте, т.е. %TEMP папку %. На самом деле само время выполнения SSIS часто создает временные файлы там - поэтому, если DBA позволяет Вам выполнять SSIS, он позволяет Вам создавать временные файлы :).
Пока DBA понимает, что эти временные файлы не создают проблему, или дополнительная рабочая нагрузка для него (объясните, что он не должен устанавливать специальные полномочия, или создавать резервную копию их, и т.д.), он должен согласиться позволить Вам создать их.
Единственная задача обслуживания для DBA состоит в том, чтобы периодически чистить %TEMP каталог % в случае, если Ваше задание SSIS приводит к сбою и оставляет файл. Но он должен сделать это так или иначе, как много других процессов могут сделать то же. Простое задание SQL Agent сделает это.