lundi 14 décembre 2009

Sql Serveur - Converting une string Hexa en caratère

En Sql Serveur, il n'est pas si simple de convertir une string contenant une valeur hexadécimale en en caractère.
J'ai trouvé la réponse à cette épineuse question sur l'article "T-SQL Convert Hex String to Varbinary" de Peter DeBetta. La fonction HexStrToVarBin de Peter permet ce petit tour de passe-passe.

Exemple:
-- === CONVERT SIMPLE BYTE ================
DECLARE @strData Varchar(2)
-- Some programming extracting a hex digit
SET @strData = '4A'
print 'Conversion on simple char' 
print Char( dbo.HexStrToVarBin( '0x'+@StrData ) ) 

-- === CONVERT SEQUENCE OF BYTES ==========
DECLARE @strData2 Varchar(20)
-- Some programming extracting a hex digit
SET @strData2 = '4A4B4C4D'
print 'Conversion to sequence of char' 
print Cast( dbo.HexStrToVarBin( '0x'+@StrData2 ) as Varchar(10) )

Résultat:
Conversion on simple char
J
Conversion to sequence of char
JKLM

Aucun commentaire: