Ik weet dat dit al is beantwoord, maar ik heb gewoon meer tijd besteed dan ik wil toegeven om SQL-instructies met één regel te bedenken om dit te bereiken, dus ik zal ze hier delen voor het geval iemand anders hetzelfde moet doen:
-- 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
;
Ik moest een door een subquery gegenereerde tabel gebruiken in de eerste (coderings)query omdat ik geen enkele manier kon vinden om de oorspronkelijke waarde ("TestData") om te zetten in zijn hexadecimale tekenreeksrepresentatie ("5465737444617461") om op te nemen als argument voor xs:hexBinary() in de XQuery-instructie.
Ik hoop dat dit iemand helpt!