Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल सर्वर 2005 टी-एसक्यूएल में बेस 64 एन्कोडिंग

मुझे पता है कि इसका उत्तर पहले ही दिया जा चुका है, लेकिन मैंने इसे पूरा करने के लिए सिंगल-लाइन एसक्यूएल स्टेटमेंट्स के साथ आने की परवाह किए जाने से अधिक समय बिताया है, इसलिए अगर किसी और को भी ऐसा करने की ज़रूरत है तो मैं उन्हें यहां साझा करूंगा:

-- 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
;

मुझे पहली (एन्कोडिंग) क्वेरी में एक सबक्वायरी-जेनरेट की गई तालिका का उपयोग करना पड़ा क्योंकि मुझे मूल मान ("टेस्टडेटा") को इसके हेक्स स्ट्रिंग प्रस्तुति ("5465737444617461") में तर्क के रूप में शामिल करने का कोई तरीका नहीं मिला। xs:hexBinary() XQuery कथन में।

मुझे आशा है कि यह किसी की मदद करेगा!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फास्ट अपरर्ट Sql सर्वर 2008 R2

  2. SQL सर्वर:क्वेरी निष्पादन में अमान्य वस्तु का नाम

  3. SELECT DISTINCT a, b FROM... SELECT DISTINCT A + '|' से कम रिकॉर्ड क्यों लौटाता है + बी से...?

  4. sql:कॉलम के रूप में पंक्तियों का मान

  5. SQL सर्वर में दशमलव मान कैसे संग्रहीत करें?