将二进制作为字符串返回,而不是转换或强制转换
Posted
技术标签:
【中文标题】将二进制作为字符串返回,而不是转换或强制转换【英文标题】:Return binary as string, NOT convert or cast 【发布时间】:2013-05-02 14:21:35 【问题描述】:是否有一种简单的方法(如转换或强制转换)将二进制字段作为字符串返回而不实际转换或强制转换?
我想要的数据在数据库中是这样的:
0x24FC40460F58D64394A06684E9749F30
使用 convert(varchar(max), binary_field) 时,返回如下:
$ü@FXÖC” f„étŸ0
cast(binary_field as varchar(max)) 具有相同的结果。
我正在尝试修改旧 vb.net 应用程序中的数据源,所以我希望它是一个类似于现有值的字符串,但看起来仍然像原始数据。我没有有在查询中这样做,但如果可能的话,我想避免过多地修改旧的vb代码。
这是我的选择语句:
SELECT strName, strDesc, binUUID
FROM MyTableName
where intFamily = '1234'
order by strName
或者,如果我确实转换/转换它,是否可以安全地将稍后存储为字符串的“$ü@FXÖC”f„étŸ0”与以相同方式收集的另一个值进行比较?
【问题讨论】:
【参考方案1】:有一个内置函数可以从二进制值生成十六进制字符串
SELECT sys.fn_varbintohexstr (0x24FC40460F58D64394A06684E9749F30)
【讨论】:
A+++ 答案,将再次使用 :D以上是关于将二进制作为字符串返回,而不是转换或强制转换的主要内容,如果未能解决你的问题,请参考以下文章