sql - 如何在不使用 xp_cmdshell 的情况下将 BLOB varbinary(max) 列导出到 CSV 或 excel?

标签 sql sql-server excel sql-server-2008 blob

我被禁止使用 xp_cmdshell。我在 SQL Server 2008R2 实例中有一个表,该表有一个 varbinary(max) BLOB 列,我需要将其输出为 CSV 或 Excel 格式。不知道该怎么做。我可以远程登录服务器并在命令提示符下运行 SQLCmd,但我以前从未转换过这种类型的数据,所以我不确定语法。任何帮助将不胜感激。提前致谢!!

最佳答案

我会使用 BCP.exe反而。它是一个命令行工具,专为您想要做的事情而设计。样本:

bcp.exe [db1].[dbo].[table1] out file1.csv -n -T -S"server1"

如果您希望每个文件有一行(我不会问您为什么要这样做),最好的方法是使用脚本(powershell/wscript/jscript/etc.)并逐行解析您的文件。

另一种非最佳方法是生成循环遍历每一行的 TSQL(可能使用游标),通过 queryout 打印出 bcp.exe 语句。这假设您可以定义某种键来隔离单行。见下面的伪代码:
-- create and wrap your cursor around this
select 'bcp.exe "select * from dbo.table1 where pkcol = ' + cast(@pkcol as varchar) + ' queryout file1.csv -n -T -S"server1"'
from dbo.table1
where col1 = @pkcol

关于sql - 如何在不使用 xp_cmdshell 的情况下将 BLOB varbinary(max) 列导出到 CSV 或 excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359377/

相关文章:

python - 如何将excel数据拉入列表以使用python?

MySQL 5.5 - 如何在插入期间表被锁定时获取行数

mysql - SQL - 查找日期范围内的最高单日销售额

ios - 如何将空值存储到数据库表

sql-server - Memcached 与 SQL Server 缓存

excel - 限制打印份数

sql - 标签/关键字匹配的最佳解决方案是什么?

php - 如何检索同兴趣用户的状态 Mysql查询问题

sql-server - 在 SQL Server 中将行转换为 XML 格式

asp.net-mvc - MVC 2 将 View 传递给 Controller ​​以即时生成 Excel 文件