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?