是否可以使用BULK INSERT/bcp从命名管道fifo-style读取数据?
也就是说,除了从真实文本文件中读取外,是否可以让BULK INSERT/bcp从另一个进程的写端口读取命名管道中的数据?
例如:
- 创建命名管道
- 将文件解压缩到命名管道中
- 使用bcp或BULK INSERT从命名管道中读取数据
或者:
- 创建4个命名管道
- 将1个文件分成4个流,将每个流写入单独的命名管道中
- 使用bcp或BULK INSERT从4个命名管道读取数据到4个表中
我找到的最接近的是this fellow(网站现在无法访问),他使用自己的实用程序和以下用法成功地使用bcp向命名管道写入数据:
start /MIN ZipPipe authors_pipe authors.txt.gz 9
bcp pubs..authors out \\.\pipe\authors_pipe -T -n
但他无法使反向操作起作用。
因此,在我进行一项愚蠢的任务之前,我想知道使用BULK INSERT或bcp从命名管道中读取是否从根本上可行。如果可能,如何设置?使用.NET System.IO.Pipes
命名空间中的NamedPipeServerStream
或其他什么东西足够吗?
例如,使用PowerShell的示例:
[reflection.Assembly]::LoadWithPartialName("system.core")
$pipe = New-Object system.IO.Pipes.NamedPipeServerStream("Bob")
然后...呢?