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

SQL सर्वर में बल्क इंसर्ट का उपयोग करके UTF-8 वर्ण कैसे लिखें?

मैं विशेष वर्णों को बल्क में डालने के लिए एक समाधान की तलाश में यहां आया था। UTF-16 के साथ समाधान पसंद नहीं आया (जो csv फ़ाइल के आकार को दोगुना कर देगा)। मुझे पता चला कि आप निश्चित रूप से कर सकते हैं और यह बहुत आसान है, आप नहीं करते हैं। मुझे प्रारूप फ़ाइल की आवश्यकता नहीं है। यह उत्तर अन्य लोगों के लिए है जो इसे ढूंढ रहे हैं, क्योंकि यह कहीं भी अच्छी तरह से प्रलेखित नहीं लगता है, और मेरा मानना ​​​​है कि यह गैर-अंग्रेजी भाषी लोगों के लिए एक बहुत ही सामान्य समस्या है। समाधान यह है:बस CODEPAGE='65001' को बल्क इंसर्ट के स्टेटमेंट के साथ जोड़ें। (65001=यूटीएफ-8 के लिए कोडपेज नंबर)। माइकल ओ द्वारा सुझाए गए सभी यूनिकोड वर्णों के लिए काम नहीं कर सकता है, लेकिन कम से कम यह लैटिन-विस्तारित, ग्रीक और सिरिलिक, शायद कई अन्य लोगों के लिए भी सही काम करता है।

नोट:एमएसडीएन दस्तावेज कहता है कि यूटीएफ -8 समर्थित नहीं है, इस पर विश्वास न करें, मेरे लिए यह SQL सर्वर 2008 में सही काम करता है, हालांकि अन्य संस्करणों को आजमाया नहीं है।

उदा.:

BULK INSERT #myTempTable 
FROM  'D:\somefolder\myCSV.txt'+
WITH 
    ( 
        CODEPAGE = '65001',
        FIELDTERMINATOR = '|',
        ROWTERMINATOR ='\n'
    );

यदि आपके सभी विशेष वर्ण 160-255 (iso-8859-1 या windows-1252) में हैं, तो आप इसका भी उपयोग कर सकते हैं:

BULK INSERT #myTempTable 
FROM  'D:\somefolder\myCSV.txt'+
WITH 
    ( 
        CODEPAGE = 'ACP',
        FIELDTERMINATOR = '|',
        ROWTERMINATOR ='\n'
    );


  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 सर्वर में अग्रणी शून्य को ट्रिम करने के लिए बेहतर तकनीकें?

  2. क्या इनर जॉइन कंडीशन में 'OR' होना एक बुरा विचार है?

  3. tsql में समेकन के संदर्भ में एक चयन कथन के साथ एक सम्मिलित सुरक्षित है?

  4. अंतिम डाली गई आईडी कैसे प्राप्त करें?

  5. SQL सर्वर में स्ट्रिंग्स को जोड़ने के लिए GROUP BY का उपयोग कैसे करें?