Saya memiliki kolom varchar
dalam tabel di SQL Server yang menyimpan string teks yang dikodekan base64 yang ingin saya dekode menjadi teks biasa yang setara dengan itu.
Apakah SQL Server memiliki fungsionalitas native untuk menangani hal semacam ini?
Contoh string base64:
cm9sZToxIHByb2R1Y2VyOjEyIHRpbWVzdGFtcDoxNDY4NjQwMjIyNTcxMDAwIGxhdGxuZ3tsYXRpdHVkZV9lNzo0MTY5ODkzOTQgbG9uZ2l0dWRlX2U3Oi03Mzg5NjYyMTB9IHJhZGl1czoxOTc2NA==
Yang diterjemahkan menjadi:
role:1 producer:12 timestamp:1468640222571000 latlng{latitude_e7:416989394 longitude_e7:-738966210} radius:19764
Sudah tahu:
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 fungsionalitas XML bawaan (sejak SQL Server 2005)