【问题标题】:Sqlserver varbinary data want to select as varchar without truncationSqlserver varbinary 数据要选择为 varchar 而不截断
【发布时间】:2017-02-17 20:46:06
【问题描述】:

我正在运行以下命令来检索转换后的二进制数据,然后将输出保存到文件中并被截断!

SELECT 
cast([BINARY_VALUE] as varchar(max)) BLOB_VALUE 
FROM [PROD3].[DOMAIN].[BLOBS]
WHERE OBJECT_ID = 881462

如何使用 sqlserver 将所有转换后的二进制数据保存到文件中?

【问题讨论】:

  • 输出有多大

标签: sql-server binary


【解决方案1】:

您尝试过 bcp 命令吗?它应该可以正常工作。

【讨论】:

  • 嗯......不......我不知道 BCP - 它已经内置了吗??
  • 这是 SQL Server 附带的区分大小写的命令。如果您使用的是 Windows 身份验证,那么您可以使用 -T 开关:这是一个示例。 c:\>bcp "" queryout c:\temp\data.txt -c -T -S SQLSERVERNAME
【解决方案2】:

请检查这个问题:

varbinary to string on SQL Server

TL;DR:您不应该使用 CAST,而应该使用 CONVERT:

SELECT 
CONVERT(varchar(max), BINARY_VALUE,2) as BLOB_VALUE 
FROM [PROD3].[DOMAIN].[BLOBS]
WHERE OBJECT_ID = 881462

注意样式参数2的使用。

【讨论】:

  • SELECT CONVERT(VARCHAR(max), [BINARY_VALUE],2) as BLOB_VALUE FROM [PROD3].[DOMAIN].[BLOBS] WHERE OBJECT_ID = 881462 以上工作但没有转换为可读字符串! !??
  • 尝试转换为 NVARCHAR 而不是 VARCHAR :SELECT CONVERT(nvarchar(max), BINARY_VALUE,2) as BLOB_VALUE FROM [PROD3].[DOMAIN].[BLOBS] WHERE OBJECT_ID = 881462
  • 不...同样的结果。 CASTworks,CONVERT 似乎没有,
  • 是的!谢谢! NVARCHAR 做到了!
猜你喜欢
  • 1970-01-01
  • 2012-11-03
  • 2023-03-25
  • 1970-01-01
  • 2010-10-03
  • 1970-01-01
  • 2016-05-08
  • 2014-05-06
  • 1970-01-01
相关资源
最近更新 更多