[MSSQL]字串轉成16進位制函式

廈門德仔發表於2012-02-14
 
/**************************** 
字串轉成16進位制
作者:不得閒
QQ: 75492895
Email: appleak46@yahoo.com.cn
****************************/
--建立函式(suiyunonghen(不得閒)) 
Create Function VarCharToHex(@Str Varchar(400))
returns varchar(800)
as
begin
declare @i int,@Asi int,@ModS int,@res varchar(800),@Len int,@Cres varchar(4),@tempstr varbinary(400)
select @i = 1,@res='',@len=datalength(@str),@tempStr = Convert(varbinary,@str)
while @i<=@len 
begin
Select @Asi = substring(@tempstr,1,1),@Cres=''
while @Asi <> 0
begin
select @Mods = @Asi %16,
@Cres=Case when (@Mods > 9) then Char(Ascii('A')+@Mods-10)+@Cres else Cast(@Mods as varchar(4)) + @Cres end,
@Asi = @Asi/16
end 
Select @res = @res + @Cres,@tempStr = substring(@tempStr,2,@len-1),@i = @i+1 
end
return @res
end
go
--測試示例
select dbo.VarCharToHex('葉子')
--執行結果
/*
D2B6D7D3
*/

相關文章