Giải mã chuỗi Base64 tự nhiên trong SQL Server


14

Tôi có một varcharcột trong một bảng trong SQL Server chứa chuỗi văn bản được mã hóa base64 mà tôi muốn giải mã thành văn bản đơn giản tương đương

Liệu SQL Server có bất cứ nguồn gốc chức năng để xử lý các loại điều?

Một chuỗi base64 mẫu:

cm9sZToxIHByb2R1Y2VyOjEyIHRpbWVzdGFtcDoxNDY4NjQwMjIyNTcxMDAwIGxhdGxuZ3tsYXRpdHVkZV9lNzo0MTY5ODkzOTQgbG9uZ2l0dWRlX2U3Oi03Mzg5NjYyMTB9IHJhZGl1czoxOTc2NA==

Giải mã cho:

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

Câu trả lời:


19

Tìm ra:

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

Đầu ra:

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

Chỉ cần trao đổi BASE64_COL_NAMEtên cột của bạn hoặc bạn có thể thay thế sql:column("BASE64_COLUMN")bằng sql:variable("@base64variable")nếu bạn muốn sử dụng một biến được khai báo, ví dụ nếu bạn đang tạo một hàm hoặc một cái gì đó.

Nó sử dụng một biến đổi XSL bằng chức năng XML tích hợp (kể từ SQL Server 2005)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.