Sql-Server
在 SQL Server 中本機解碼 Base64 字元串
我
varchar
在 SQL Server 的表中有一個列,其中包含一個 base64 編碼的文本字元串,我想將其解碼為等效的純文字SQL Server 是否有任何本機功能來處理這種類型的事情?
範例 base64 字元串:
cm9sZToxIHByb2R1Y2VyOjEyIHRpbWVzdGFtcDoxNDY4NjQwMjIyNTcxMDAwIGxhdGxuZ3tsYXRpdHVkZV9lNzo0MTY5ODkzOTQgbG9uZ2l0dWRlX2U3Oi03Mzg5NjYyMTB9IHJhZGl1czoxOTc2NA==
解碼為:
role:1 producer:12 timestamp:1468640222571000 latlng{latitude_e7:416989394 longitude_e7:-738966210} radius:19764
弄清楚了:
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
輸出:
role:1 producer:12 timestamp:1468640222571000 latlng{latitude_e7:416989394 longitude_e7:-738966210} radius:19764
只需換掉
BASE64_COL_NAME
你的列名,或者sql:column("BASE64_COLUMN")
如果sql:variable("@base64variable")
你想使用聲明的變數,例如如果你正在製作一個函式或其他東西,你可以替換為。它利用內置 XML 功能的 XSL 轉換(自 SQL Server 2005 起)