在SQL Server中验证BASE64字符串

时间:2015-10-16 14:00:54

标签: sql-server sql-server-2008-r2 sql-server-2012

我想验证存储在变量中的字符串是否是我的存储过程中的有效BASE64字符串。

例如:

declare @source varbinary(max), @encoded varchar(max), @decoded varbinary(max)
set @source = convert(varbinary(max), 'Hello Base64')
set @encoded = cast('' as xml).value('xs:base64Binary(sql:variable(''@source''))', 'varchar(max)')

现在我想验证@encoded是否具有有效的BASE64字符串。

任何答案都将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

declare @b64 varchar(max) = 'SGVsbG8gQmFzZTY0'

select UTF8Encoding
    ,case when UTF8Encoding is null then 0 else 1 end as Valid  from (
select CAST(CAST(N'' as xml).value('xs:base64Binary(sql:variable("@b64"))', 'VARBINARY(MAX)') as varchar(MAX)) UTF8Encoding
) a