Создание именованного канала в Windows

Я хочу записать большой набор данных из базы данных SQL Server 2005 с помощью BCP (программа массового копирования).

Идеально я хотел бы сделать следующее:

bcp MyDatabase..MyTable OUT STDOUT -c -t, |gzip -c c:\temp\dataset.csv.gz

Однако BCP просто пишет это в литеральный файл под названием STDOUT.

Я также попробовал:

bcp MyDatabase..MyTable OUT CON: -c -t, |gzip -c c:\temp\dataset.csv.gz

но это возвращается и ошибка Error = [Microsoft][SQL Native Client]Unable to open BCP host data-file.

Так, я могу создать именованный канал где-нибудь? Я видел подсказки в сети так или иначе запуска gzip с одним концом, связанным с именем файла как \\.\named_pipe - но как это сделано?

Обновление: Обратите внимание, что Microsoft самостоятельно acknowedge, что они действительно не заботятся об эффективности с SQL Server: http://connect.microsoft.com/SQLServer/feedback/details/337702/support-bcp-out-in-and-bulk-insert-compressed-or-named-pipe-support-at-least

6
задан 10.02.2010, 17:45

3 ответа

На Unix можно использовать mkfifo для этого вида вещи, но насколько я знаю, нет никакого инструмента командной строки Windows, чтобы создать или управлять именованными каналами. Они не доступны для инструментов командной строки в способе, которым стандартные и пути UNC.

Можно создать именованный канал в Perl при помощи Win32:: Канал, если Вы знаете Perl достаточно хорошо. И Вы могли записать клиенту Perl, чтобы вытащить данные из канала и отправить его в STDOUT, но это действительно не может быть сделано изящно в Windows.

2
ответ дан 07.12.2019, 16:22

Я сомневаюсь, что можно сделать это или даже заставить это работать. Но только было бы более просто сделать это на двух шагах?

bcp MyDatabase..MyTable OUT c:\temp\dataset.csv -c -t,
gzip c:\temp\dataset.csv
1
ответ дан 07.12.2019, 16:22

Я просто искал то же самое!

Этот парень, кажется, выполнил BCP к gzip w/фоновое задание:

http://jcarlossaez.spaces.live.com/blog/cns!B3378F057444B65C!108.entry

1
ответ дан 07.12.2019, 16:22

Теги

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