varchar 字符串转为 varbinary

/*****************
网上看到文章讲varbinay转varchar比较多,自己参考别人做一个相反的
varchar(64) ->varbinary
******************/
Create function fnGetBinary
(@strSource varchar(64))
returns varbinary(64)
as
begin
declare @varBinDest varbinary(64)
declare @iTextPos tinyint
set @iTextPos = 1

-- 0~9 48
-- A~F 65

while (@iTextPos < DataLength(@strSource))
begin
declare @asciiVal tinyint
declare @oneByte tinyint
set @asciiVal = ascii(substring(@strSource, @iTextPos,1))

--产生字母二进制值
if @asciiVal < 65
set @oneByte = @asciiVal - 48
else
set @oneByte = @asciiVal - 65 + 10

set @iTextPos = @iTextPos + 1

set @asciiVal = ascii(substring(@strSource, @iTextPos,1))

if @asciiVal < 65
set @oneByte = @oneByte*16 + @asciiVal - 48
else
set @oneByte = @oneByte*16 + @asciiVal - 65 + 10



if @iTextPos = 2
set @varBinDest = cast(@oneByte as binary(1))
else
set @varBinDest = @varBinDest + cast(@oneByte as binary(1))
set @iTextPos = @iTextPos + 1

end

return @varBinDest
end 

 

 

更多请访问本人站点:

http://www.caochunhua.com.cn

http://www.livecoach.cn

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值