दिलचस्प पोस्ट
संक्रमण का उपयोग करते हुए समस्या + अस्पष्टता परिवर्तन + अतिप्रवाह छिपा हुआ अजगर: Matplotlib में टेक्स प्रस्तुत करने में असमर्थ जावास्क्रिप्ट का उपयोग करते हुए दो वर्णों के बीच सबस्ट्रिंग प्राप्त करें अनचेक की जांच करें एक और एकल चेकबॉक्स के साथ सभी चेकबॉक्स jquery का उपयोग करें वेक्टर को एक वेक्टर जोड़ना पायथन प्रिंट का आउटपुट फ़्लश कैसे करें? JavaFX 8 में कस्टम 3 डी मॉडल बनाने के लिए कैसे? जावा में सहानुभूति और उपद्रव का प्रदर्शन करें? एसक्यूएल सर्वर एमएएम / डीडी / वाई वाई वाई वाई तार करने के लिए दिनांक परिवर्तित करें मार्ग बदलना नए पृष्ठ में शीर्ष पर स्क्रॉल नहीं करता है मैं एक WPF अनुप्रयोग को कैसे पुनरारंभ करूं? मैं जावास्क्रिप्ट में स्ट्र्रेस अपरकेस का पहला अक्षर कैसे बना सकता हूं? PHP में वैश्विक चर और फ़ंक्शन मापदंडों के बीच लाभ / हानि? यूएमएल तीरों का स्पष्टीकरण वेब एप से क्लाइंट प्रिंटर पर मुद्रण करना

SQL सर्वर में CSV फ़ाइल आयात करें

मैं BULK INSERT का उपयोग कर SQL सर्वर में एक। .csv फ़ाइल आयात करने के लिए मदद की तलाश कर रहा हूं और मेरे पास कुछ बुनियादी प्रश्न हैं I

मुद्दे:

  1. CSV फ़ाइल डेटा के बीच में (अल्पविराम) हो सकता है (पूर्व: विवरण), तो मैं इन आंकड़ों को कैसे आयात कर सकता हूं?

  2. अगर क्लाइंट एक्सेल से सीएसवी बनाता है तो कॉमा वाले डेटा को "" (डबल कोट्स) के अंदर संलग्न किया जाता है [नीचे दिए गए उदाहरण के रूप में] तो यह आयात कैसे संभाल सकता है?

  3. अगर कुछ पंक्तियों में खराब डेटा होता है, तो हम कैसे छूटे आयात करते हैं? (आयात आयात करने योग्य नहीं है जो पंक्तियों को छोड़ देता है)

हेडर के साथ नमूना CSV यहां दिया गया है:

 Name,Class,Subject,ExamDate,Mark,Description Prabhat,4,Math,2/10/2013,25,Test data for prabhat. Murari,5,Science,2/11/2013,24,"Test data for his's test, where we can test 2nd ROW, Test." sanjay,4,Science,,25,Test Only. 

और आयात करने के लिए SQL कथन:

 BULK INSERT SchoolsTemp FROM 'C:\CSVData\Schools.csv' WITH ( FIRSTROW = 2, FIELDTERMINATOR = ',', --CSV field delimiter ROWTERMINATOR = '\n', --Use to shift the control to next row TABLOCK ) 

Solutions Collecting From Web of "SQL सर्वर में CSV फ़ाइल आयात करें"

आधारित SQL सर्वर CSV आयात

1) सीएसवी फ़ाइल डेटा हो सकता है , (कॉम्मा) के बीच (पूर्व: वर्णन), तो मैं इन आंकड़ों को कैसे आयात कर सकता हूं?

उपाय

यदि आप एक सीमांकक के रूप में (अल्पविराम) का उपयोग कर रहे हैं, तो कोई कॉमा के बीच एक अंतर टर्मिनेटर और आपके डेटा में अल्पविराम के बीच अंतर करने का कोई रास्ता नहीं है। मैं एक अलग FIELDTERMINATOR जैसे || । कोड ऐसा दिखेगा और यह पूरी तरह से अल्पविराम और एकल स्लैश को संभाल देगा।

2) यदि ग्राहक एक्सेल से सीएसवी बनाते हैं तो कॉमा के डेटा को " ... " (दोहरे उद्धरण) के भीतर संलग्न किया जाता है [नीचे दिए गए उदाहरण के रूप में] तो आयात कैसे इसे संभाल सकता है?

उपाय

यदि आप बल्क डालने का उपयोग कर रहे हैं तो दोहरे उद्धरणों को संभालने का कोई तरीका नहीं है, डेटा को दोहरे उद्धरणों के साथ पंक्तियों में डाला जाएगा। तालिका में डेटा डालने के बाद आप उन डबल उद्धरणों को ' '।

 update table set columnhavingdoublequotes = replace(columnhavingdoublequotes,'"','') 

3) अगर कुछ पंक्तियों में खराब डेटा है, तो क्या हम आयात करते हैं? (आयात आयात पंक्तियां नहीं छोड़ती है)?

उपाय

अमान्य डेटा या स्वरूप के कारण तालिका में लोड नहीं किए जाने वाले पंक्तियों को संभालने के लिए, ERRORFILE प्रॉपर्टी का उपयोग कर संभाल सकता है, त्रुटि फ़ाइल नाम निर्दिष्ट करें, यह त्रुटि फ़ाइल में त्रुटि होने वाली पंक्तियां लिख देगा। कोड ऐसा दिखना चाहिए

 BULK INSERT SchoolsTemp FROM 'C:\CSVData\Schools.csv' WITH ( FIRSTROW = 2, FIELDTERMINATOR = ',', --CSV field delimiter ROWTERMINATOR = '\n', --Use to shift the control to next row ERRORFILE = 'C:\CSVDATA\SchoolsErrorRows.csv', TABLOCK ) 

डेटा के मुद्दे में अल्पविराम को हल करने का सर्वोत्तम, सबसे तेज़ और सबसे आसान तरीका, अल्पविराम से अलग (जैसे एक पाइप) के अलावा किसी अन्य सेटिंग को सेट करने के बाद एक अल्पविराम से अलग फ़ाइल सहेजने के लिए Excel का उपयोग करना है। यह तब आपके लिए एक पाइप (या जो कुछ भी) अलग फ़ाइल उत्पन्न करेगा जिसे आप आयात कर सकते हैं इसे यहाँ वर्णित किया गया है

एफआईआर आपको सीएसवी फाइल को डाटा टेबल में आयात करना होगा

तब आप SQLBulkCopy का उपयोग करके बल्क पंक्तियों को सम्मिलित कर सकते हैं

 using System; using System.Data; using System.Data.SqlClient; namespace SqlBulkInsertExample { class Program { static void Main(string[] args) { DataTable prodSalesData = new DataTable("ProductSalesData"); // Create Column 1: SaleDate DataColumn dateColumn = new DataColumn(); dateColumn.DataType = Type.GetType("System.DateTime"); dateColumn.ColumnName = "SaleDate"; // Create Column 2: ProductName DataColumn productNameColumn = new DataColumn(); productNameColumn.ColumnName = "ProductName"; // Create Column 3: TotalSales DataColumn totalSalesColumn = new DataColumn(); totalSalesColumn.DataType = Type.GetType("System.Int32"); totalSalesColumn.ColumnName = "TotalSales"; // Add the columns to the ProductSalesData DataTable prodSalesData.Columns.Add(dateColumn); prodSalesData.Columns.Add(productNameColumn); prodSalesData.Columns.Add(totalSalesColumn); // Let's populate the datatable with our stats. // You can add as many rows as you want here! // Create a new row DataRow dailyProductSalesRow = prodSalesData.NewRow(); dailyProductSalesRow["SaleDate"] = DateTime.Now.Date; dailyProductSalesRow["ProductName"] = "Nike"; dailyProductSalesRow["TotalSales"] = 10; // Add the row to the ProductSalesData DataTable prodSalesData.Rows.Add(dailyProductSalesRow); // Copy the DataTable to SQL Server using SqlBulkCopy using (SqlConnection dbConnection = new SqlConnection("Data Source=ProductHost;Initial Catalog=dbProduct;Integrated Security=SSPI;Connection Timeout=60;Min Pool Size=2;Max Pool Size=20;")) { dbConnection.Open(); using (SqlBulkCopy s = new SqlBulkCopy(dbConnection)) { s.DestinationTableName = prodSalesData.TableName; foreach (var column in prodSalesData.Columns) s.ColumnMappings.Add(column.ToString(), column.ToString()); s.WriteToServer(prodSalesData); } } } } } 

यहां बताया गया है कि मैं इसे कैसे हल करूंगा:

  1. एक्सेल में एक्सएलएस शीट के रूप में बस अपनी सीएसवी फाइल को सहेजें (ऐसा करके, आपको सीमांकक के बारे में चिंता करने की ज़रूरत नहीं होगी। एक्सेल का स्प्रेडशीट प्रारूप को एक तालिका के रूप में पढ़ा जाएगा और सीधे एसक्यूएल टेबल में आयात किया जाएगा)

  2. SSIS का उपयोग कर फ़ाइल को आयात करें

  3. आयात प्रबंधक में एक कस्टम स्क्रिप्ट लिखें जिसे आप देख रहे डेटा को नकार / संशोधित कर सकते हैं। (या उस डेटा की छानबीन करने के लिए मास्टर स्क्रिप्ट चलाएं जिसे आप हटाना चाहते हैं)

शुभ लाभ।

एसक्यूएल सर्वर मैनेजमेंट स्टूडियो द्वारा डेटाबेस में एक सीएसवी फ़ाइल आयात करें

  1. सबसे पहले, अपने डेटाबेस में एक तालिका बनाएं जिसमें आप सीएसवी फ़ाइल आयात करेंगे।
  2. SQL सर्वर प्रबंधन स्टूडियो का उपयोग कर अपने डेटाबेस में प्रवेश करें
  3. डाटाबेस पर राइट क्लिक करें और टास्क -> आयात डेटा चुनें …
  4. अगला> बटन क्लिक करें
  5. डेटा स्रोत के लिए, फ्लैट फ़ाइल स्रोत चुनें। फिर सीएसवी फ़ाइल का चयन करने के लिए ब्राउज बटन का उपयोग करें अगला> बटन क्लिक करने से पहले डेटा आयात को कॉन्फ़िगर करने में कुछ समय व्यतीत करें
  6. गंतव्य के लिए, सही डेटाबेस प्रदाता का चयन करें (उदाहरण के लिए SQL सर्वर 2012, आप SQL Server मूल क्लाइंट 11.0 का उपयोग कर सकते हैं)। सर्वर नाम दर्ज करें; SQL सर्वर प्रमाणीकरण का उपयोग करें चेक करें, अगला> बटन क्लिक करने से पहले उपयोगकर्ता नाम, पासवर्ड और डेटाबेस दर्ज करें।
  7. चयन स्रोत तालिकाएं और दृश्य विंडो में, आप अगला> बटन क्लिक करने से पहले मैपिंग संपादित कर सकते हैं
  8. तुरंत भागो चेक करें और अगला> बटन क्लिक करें
  9. पैकेज को चलाने के लिए समाप्त बटन पर क्लिक करें।

संदर्भ