Can Sql Server BULK INSERT read from a named pipe/fifo?
- by Peter
Is it possible for BULK INSERT/bcp to read from a named pipe, fifo-style?
That is, rather than reading from a real text file, can BULK INSERT/bcp be made to read from a named pipe which is on the write end of another process?
For example:
create named pipe
unzip file to named pipe
read from named pipe with bcp or BULK INSERT
or:
create 4 named pipes
split 1 file into 4 streams, writing each stream to a separate named pipe
read from 4 named pipes into 4 tables w/ bcp or BULK INSERT
The closest I've found was this fellow (site now unreachable), who managed to write to a named pipe w/ bcp, with a his own utility and usage like so:
start /MIN ZipPipe authors_pipe authors.txt.gz 9
bcp pubs..authors out \\.\pipe\authors_pipe -T -n
But he couldn't get the reverse to work.
So before I head off on a fool's errand, I'm wondering whether it's fundamentally possible to read from a named pipe w/ BULK INSERT or bcp. And if it is possible, how would one set it up? Would NamedPipeServerStream or something else in the .NET System.IO.Pipes namespace be adequate?
eg, an example using Powershell:
[reflection.Assembly]::LoadWithPartialName("system.core")
$pipe = New-Object system.IO.Pipes.NamedPipeServerStream("Bob")
And then....what?