pengembangan-web-mp.com

Decode Base64 String Asli di SQL Server

Saya memiliki kolom varchar dalam sebuah tabel di SQL Server yang menyimpan string teks yang di-encode base64 yang ingin saya dekode menjadi teks biasa yang setara

Apakah SQL Server memiliki fungsionalitas 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
15
GWR

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_NAME Untuk nama kolom Anda, atau Anda dapat mengganti sql:column("BASE64_COLUMN") dengan sql:variable("@base64variable") jika Anda ingin menggunakan variabel yang dideklarasikan mis. jika Anda membuat fungsi atau sesuatu.

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

20
GWR