Sei que isso já foi respondido, mas dediquei mais tempo do que gostaria de admitir a criar instruções SQL de linha única para fazer isso, então as compartilharei aqui caso outras pessoas precisem fazer o mesmo:
-- Encode the string "TestData" in Base64 to get "VGVzdERhdGE="
SELECT
CAST(N'' AS XML).value(
'xs:base64Binary(xs:hexBinary(sql:column("bin")))'
, 'VARCHAR(MAX)'
) Base64Encoding
FROM (
SELECT CAST('TestData' AS VARBINARY(MAX)) AS bin
) AS bin_sql_server_temp;
-- Decode the Base64-encoded string "VGVzdERhdGE=" to get back "TestData"
SELECT
CAST(
CAST(N'' AS XML).value(
'xs:base64Binary("VGVzdERhdGE=")'
, 'VARBINARY(MAX)'
)
AS VARCHAR(MAX)
) ASCIIEncoding
;
Eu tive que usar uma tabela gerada por subconsulta na primeira consulta (codificação) porque não consegui encontrar nenhuma maneira de converter o valor original ("TestData") em sua representação de cadeia hexadecimal ("5465737444617461") para incluir como argumento para xs: hexBinary () na instrução XQuery.
Espero que isso ajude alguém!