Décoder la chaîne Base64 en mode natif dans SQL Server


15

J'ai une varcharcolonne dans une table dans SQL Server qui contient une chaîne de texte encodée en base64 que je voudrais décoder en son équivalent en texte brut

SQL Server a-t-il des fonctionnalités natives pour gérer ce type de chose?

Un exemple de chaîne base64:

cm9sZToxIHByb2R1Y2VyOjEyIHRpbWVzdGFtcDoxNDY4NjQwMjIyNTcxMDAwIGxhdGxuZ3tsYXRpdHVkZV9lNzo0MTY5ODkzOTQgbG9uZ2l0dWRlX2U3Oi03Mzg5NjYyMTB9IHJhZGl1czoxOTc2NA==

Qui décode pour:

role:1 producer:12 timestamp:1468640222571000 latlng{latitude_e7:416989394 longitude_e7:-738966210} radius:19764

Réponses:


20

Deviner:

SELECT 
    CONVERT
    (
        VARCHAR(MAX), 
        CAST('' AS XML).value('xs:base64Binary(sql:column("BASE64_COLUMN"))', 'VARBINARY(MAX)')
    ) AS RESULT
FROM
    (
        SELECT 'cm9sZToxIHByb2R1Y2VyOjEyIHRpbWVzdGFtcDoxNDY4NjQwMjIyNTcxMDAwIGxhdGxuZ3tsYXRpdHVkZV9lNzo0MTY5ODkzOTQgbG9uZ2l0dWRlX2U3Oi03Mzg5NjYyMTB9IHJhZGl1czoxOTc2NA==' AS BASE64_COLUMN
    ) A

Production:

role:1 producer:12 timestamp:1468640222571000 latlng{latitude_e7:416989394 longitude_e7:-738966210} radius:19764

Échangez simplement BASE64_COL_NAMEle nom de votre colonne, ou vous pouvez le remplacer sql:column("BASE64_COLUMN")par sql:variable("@base64variable")si vous souhaitez utiliser une variable déclarée, par exemple si vous créez une fonction ou quelque chose.

Il utilise une transformation XSL à l'aide de la fonctionnalité XML intégrée (depuis SQL Server 2005)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.