Sé que esto ya ha sido respondido, pero acabo de pasar más tiempo del que me gustaría admitir creando declaraciones SQL de una sola línea para lograr esto, así que las compartiré aquí en caso de que alguien más necesite hacer lo mismo:
-- 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
;
Tuve que usar una tabla generada por subconsulta en la primera consulta (codificación) porque no pude encontrar ninguna forma de convertir el valor original ("TestData") a su representación de cadena hexadecimal ("5465737444617461") para incluir como argumento para xs: hexBinary () en la instrucción XQuery.
¡Espero que esto ayude a alguien!