PP.*_*PP. 7 windows sql-server pipe sql-server-2005
我想使用 BCP(批量复制程序)从 SQL Server 2005 数据库编写一个大型数据集。
理想情况下,我想执行以下操作:
bcp MyDatabase..MyTable OUT STDOUT -c -t, |gzip -c c:\temp\dataset.csv.gz
Run Code Online (Sandbox Code Playgroud)
然而,BCP 只是将其写入名为 STDOUT 的文字文件。
我也试过:
bcp MyDatabase..MyTable OUT CON: -c -t, |gzip -c c:\temp\dataset.csv.gz
Run Code Online (Sandbox Code Playgroud)
但这会返回和错误Error = [Microsoft][SQL Native Client]Unable to open BCP host data-file
。
那么,我可以在任何地方创建命名管道吗?我在网络上看到了一些提示,以某种方式从gzip
一端绑定到一个文件名,如 \\.\ named_pipe - 但这是如何完成的?
更新:请注意,微软自己承认他们真的不关心 SQL Server 的效率:http ://connect.microsoft.com/SQLServer/feedback/details/337702/support-bcp-out-in-and-bulk-至少插入压缩或命名管道支持
在 Unix 上,您可以使用mkfifo来完成此类操作,但据我所知,没有 Windows 命令行工具来创建或操作命名管道。命令行工具无法像传统路径和 UNC 路径那样访问它们。
如果您足够了解 Perl,则可以使用 Win32::Pipe 在 Perl 中创建命名管道。您可以编写一个 Perl 客户端来从管道中提取数据并将其发送到 STDOUT,但这在 Windows 中确实无法优雅地完成。
归档时间: |
|
查看次数: |
6010 次 |
最近记录: |