Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pengkodean Base64 di SQL Server 2005 T-SQL

Saya tahu ini sudah dijawab, tetapi saya hanya menghabiskan lebih banyak waktu daripada yang saya akui untuk membuat pernyataan SQL satu baris untuk mencapai ini, jadi saya akan membagikannya di sini jika ada orang lain yang perlu melakukan hal yang sama:

-- Encode the string "TestData" in Base64 to get "VGVzdERhdGE="
SELECT
    CAST(N'' AS XML).value(
          'xs:base64Binary(xs:hexBinary(sql:column("bin")))'
        , 'VARCHAR(MAX)'
    )   Base64Encoding
FROM (
    SELECT CAST('TestData' AS VARBINARY(MAX)) AS bin
) AS bin_sql_server_temp;

-- Decode the Base64-encoded string "VGVzdERhdGE=" to get back "TestData"
SELECT 
    CAST(
        CAST(N'' AS XML).value(
            'xs:base64Binary("VGVzdERhdGE=")'
          , 'VARBINARY(MAX)'
        ) 
        AS VARCHAR(MAX)
    )   ASCIIEncoding
;

Saya harus menggunakan tabel yang dihasilkan subquery dalam kueri (pengkodean) pertama karena saya tidak dapat menemukan cara untuk mengonversi nilai asli ("TestData") ke representasi string hex ("5465737444617461") untuk disertakan sebagai argumen xs:hexBinary() dalam pernyataan XQuery.

Saya harap ini membantu seseorang!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih kembali daftar yang dibatasi koma yang dikelompokkan berdasarkan ID

  2. Daftar Fungsi Tanggal dan Waktu di SQL Server (T-SQL)

  3. Bagaimana cara menghubungkan aplikasi Android ke SQL Server melalui jbdc?

  4. Bagaimana cara menyimpan direktori / hierarki / struktur pohon dalam database?

  5. Apakah pernyataan SQL Server tunggal atom dan konsisten?