网站大量收购独家精品文档,联系QQ:2885784924

binary和varbinary数据类型.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
binary和varbinary数据类型

binary和varbinary数据类型1.binary类型需要指定字节数,默认是30, 也就是表示最多可以存30个字节整数(240bit, 很大的数), 在presentation上是60个Hex字符串如declare @bi binary(8)set @bi=12select @bi--output 0x000000000000000C2.binary不接收字符串, 但可以先把字符串转为binarydeclare @bi binary(8)set @bi=cast(12 as binary(8))select @bi--output 0x3132000000000000是字符的ascii代码, 补零的方向与上面不同3.varbinary就是去掉上面的那些00, 和varchar去掉空格 一样T-SQL: 关于 Varbinary(Hex,Int) 与 Varchar(HexString) 之间的数据类型转换 我以前只是用存储过程简单地实现了: 16进制数的字符串表达 转变为 真正的16进制数: 例如: 0x5f 转换成 16进制的 0x5f declare @ varbinary(8000) declare @s varchar(100) declare @sql nvarchar(100) set @s = 0xFFFF set @sql = Nset @ = + cast(@s as nvarchar(100)) exec SP_EXECUTESQL @sql ,N@ varbinary(8000) out, @ out select @ 该方法属于投机取巧,只实现了 HexString to Hex 的单向转换,而且不能用 自定义函数(udf) 实现! 2.HexToInt函数实现:-- By Aaron West, 5/4/2005 -- This version allows negative numbers --return null if input is not a valid hex stringCREATE FUNCTION dbo.HexToINT ( ?@Value VARCHAR(8) ) RETURNS INT AS BEGIN ?if @Value LIKE %[^0-9A-Fa-f]% RETURN NULL ?DECLARE @I BIGINT ?SET @I = CAST(CAST(RIGHT(UPPER+ @Value),8) AS BINARY(8)) AS BIGINT) - CAST(0x3030303030303030 AS BIGINT) ?SET @I=@I-((@I/16)CAST(0x0101010101010101 AS BIGINT))*7 ?RETURN CAST(CAST( (@I15) +((@I/16)240) +((@I/256)3840) +((@I/4096)61440) +((@I/65536)983040) +((@I/1048576 +((@I251658240) +(@I/CAST(0x0100000000000000 AS BIGINT)*268435456) ? AS BINARY(4))AS INT) END GO ?SELECT ? dbo.HexToINT(0ABC) , ? dbo.HexToINT(7FFF) , ? dbo.HexToINT(0FFF) , ? dbo.HexToINT(0) ? ?AS Zero, ? dbo.HexToINT(7FFFFFFF) AS MaxValue, dbo.HexToINT AS MaxNeg, dbo.HexToINT(FFFFFFFF) AS NegOne ?3. varbinary to hexstr函数实现create function dbo.ufn_vbintohexstr ( ?@vbin_in varbinary(256) ) returns varchar(514) as Begin ?declare @x bigint ?declare @len int ?declare @loop int ?declare @value varbinary(514) ?set @value = 0x ?set @loop = 1 ?set @len = datalength(@vbin_in) ?if (@len 1) 0 set @vbin_in = 0x00 + @vbin_in ?if (@len 3) 3 set @vbin_in = 0x0000 + @vb

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档