Decode Base64 String Asli di SQL Server


15

Saya memiliki varcharkolom dalam tabel di SQL Server yang berisi string teks base64-encoded yang ingin saya decode ke dalam teks biasa itu setara

Apakah SQL Server memiliki fungsi asli untuk menangani hal semacam ini?

Contoh string base64:

cm9sZToxIHByb2R1Y2VyOjEyIHRpbWVzdGFtcDoxNDY4NjQwMjIyNTcxMDAwIGxhdGxuZ3tsYXRpdHVkZV9lNzo0MTY5ODkzOTQgbG9uZ2l0dWRlX2U3Oi03Mzg5NjYyMTB9IHJhZGl1czoxOTc2NA==

Yang diterjemahkan ke:

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

Jawaban:


20

Menemukannya:

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

Keluaran:

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

Cukup tukar BASE64_COL_NAMEuntuk nama kolom Anda, atau Anda dapat menggantinya sql:column("BASE64_COLUMN")dengan sql:variable("@base64variable")jika Anda ingin menggunakan variabel yang dideklarasikan misalnya jika Anda membuat suatu fungsi atau sesuatu.

Itu menggunakan transformasi XSL menggunakan fungsi XML built-in (sejak SQL Server 2005)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.