我想验证存储在变量中的字符串是否是我的存储过程中的有效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字符串。
任何答案都将不胜感激。
由于
答案 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