binary、char类型数据互转函数
发布时间:2020-12-16 08:55:50 所属栏目:百科 来源:网络整理
导读:最近在做项目时,需要把binary类型数据转换成字符类型的数据,发现原来可以这样写,记录下来供需要的童靴参考。 IF OBJECT_ID('fn_BinaryToChar') IS NOT NULLDROP FUNCTION fn_BinaryToCharGO/* =============================================-- 作者: Hay
最近在做项目时,需要把binary类型数据转换成字符类型的数据,发现原来可以这样写,记录下来供需要的童靴参考。
IF OBJECT_ID('fn_BinaryToChar') IS NOT NULL DROP FUNCTION fn_BinaryToChar GO /* ============================================= -- 作者: Haytor -- 日期: 2015-09-09 -- 描述: 把16进制数据转换成字符串数据 -- 示例: DECLARE @varBin VARBINARY(128) SET @varBin = 0x530054004400300030003100 --SELECT dbo.Fun_ConvertVarBinaryToVarChar(@varBin) --老方法 SELECT dbo.fn_BinaryToChar(@varBin) -- ============================================= */ CREATE FUNCTION fn_BinaryToChar( @varBin VARBINARY(MAX) ) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @varChar VARCHAR(MAX) SET @varChar = CAST('' AS XML).value('xs:hexBinary(sql:variable("@varBin") )','varchar(max)') RETURN @varChar END GO IF OBJECT_ID('fn_CharToBinary') IS NOT NULL DROP FUNCTION fn_CharToBinary GO /* ============================================= -- 作者: Haytor -- 日期: 2015-09-09 -- 描述: 把成字符串数据转换成16进制数据 -- 示例: DECLARE @varChar VARCHAR(128) SET @varChar = '530054004400300030003100' SELECT dbo.fn_CharToBinary(@varChar) -- ============================================= */ CREATE FUNCTION fn_CharToBinary( @varChar VARCHAR(MAX) ) RETURNS VARBINARY(MAX) AS BEGIN DECLARE @varBin VARBINARY(MAX) DECLARE @i INT SET @i = CHARINDEX('0x',@varChar) IF @i > 0 SET @varBin = CAST('' AS XML).value('xs:hexBinary(substring(sql:variable("@varChar"),3))','varbinary(max)') ELSE SET @varBin = CAST('' AS XML).value('xs:hexBinary(sql:variable("@varChar"))','varbinary(max)') RETURN @varBin END GO (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |