在工控应用上,返回的数据经常会以二进制的形成存储,而这些二进制数据又是以每4个bit表示一个十六进制的数据内容。解析的时候,往往是一个字节(Byte)占用8个位(bit),高位4bit 表示一个十六进制数据,低位4bit 表示一个十六进制数据。 问题描述:在SQL Server 数据库中,如何实现二进制数据与字符串数据之间的直接转换? 一定会有人立马反问我:为什么不在程序中使用 C# 或者 JAVA 或者 C++ 来处理这个业务呢?我的回答是:这个我知道,也已经实现了。但在一些特殊的应用环境和业务需求面前(如:对数据的统计、对数据的分析),我必须这么做! SQL Server 数据库中,实现 varbinary 类型转换成 varchar 类型 实现的思路是: 每次取得 varbinary 中一个字节的数据,然后除以 获得高位的4bit数据,再模获得低位的4bit数据;分别从固定字符串中以下标的形式匹配对应的字符,最后累加起来即可。 代码如下: 测试示例: select dbo.varbin2hexstr(0xfabcdef) SQL Server 数据库中,实现 varchar 类型转换成 varbinary 类型 一定会有人立马想到:既然已经实现了varbinary 类型转换成 varchar 类型,接下来需要做的,只是将函数逆向反转实现便可。但实现也并非如此!实现的思路是: 先将整个字符串按照每两位分组; 为什么不按照每8位或每4位进行分组?是为了考虑到函数的通用性。 如果按照每 8位 或者 每4位 分组,则整个字符串必须是8或者4的倍数,否则将出现字符不足,前面补 0的情况。 然后对每个字符进行处理,如:字符“A B C D E F” 对应转换为“ ”; 接着对每2个字符进行 的幂运算,并求和。如: AB = * 的一次方 + * 的零次方; 再将这个2个字符的整数和,转换为一个字节(Byte)长度的 varbinary 数据; 最后将所有的 varbinary 数据直接相加即可。 代码如下: 测试示例: (完) 本文出自 “xugang” 博客,请务必保留此出处
推荐整理分享SQL Server中实现二进制与字符类型之间的数据转换(sql如何实现),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:SQL Server中实现数据完整性的约束有哪五种,SQL Server中实现数据完整性的约束有哪五种,SQL Server中实现数据完整性的约束有哪五种,sql server的实例,sqlserver中实现从查询中退出的命令是,sqlserver怎么用,sql server能实现什么功能,SQL Server中实现数据完整性的约束有哪五种,内容如对您有帮助,希望把文章链接给更多的朋友!
SQL Server双服务器架设并数据自动同步教程 交待:使用的软硬件环境为WinXPSP2、SQLServerSP2个人版、普通双核台式机、M局域网,A机为已使用的服务器,上面已有数据库和海量数据,B机为此次
T-SQL篇如何防止SQL注入的解决方法 1.什么是SQL注入所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单
oracle 重置序列从指定数字开始的方法详解 重置oracle序列从指定数字开始declarennumber();v_startnumnumber():=;--从多少开始v_stepnumber():=1;--步进tsqlvarchar2();v_seqnamevarchar2():='MIP_JF_SEQUENCE';--序