मेरे पास एक बड़ी एक्सेल वर्कशीट है जिसे मैं अपने डेटाबेस में जोड़ना चाहता हूं।
क्या मैं इस एक्सेल वर्कशीट से SQL इंसर्ट स्क्रिप्ट उत्पन्न कर सकता हूँ?
मेरे पास एक बड़ी एक्सेल वर्कशीट है जिसे मैं अपने डेटाबेस में जोड़ना चाहता हूं।
क्या मैं इस एक्सेल वर्कशीट से SQL इंसर्ट स्क्रिप्ट उत्पन्न कर सकता हूँ?
जवाबों:
मुझे लगता है कि उल्लिखित विधियों में से किसी एक का उपयोग करके आयात करना आदर्श है यदि यह वास्तव में एक बड़ी फाइल है, लेकिन आप एक्स् ट स्टेटमेंट बनाने के लिए एक्सेल का उपयोग कर सकते हैं:
="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')"
MS SQL में आप उपयोग कर सकते हैं:
SET NOCOUNT ON
सभी '1 पंक्ति प्रभावित' टिप्पणियों को दर्शाने के लिए। और यदि आप बहुत सारी पंक्तियाँ कर रहे हैं और यह गलत हो गया है, तो एक बार में एक बार स्टेटमेंट्स के बीच एक GO डालें
=CONCATENATE()
लेकिन &
साइन का उपयोग करने से बहुत बेहतर पठनीयता हो जाती है!
&
जब मैं CONCATENATE()
थोड़ी देर पहले पैरामीटर सीमा में टकराया तो मैं स्विच कर गया, यह अब एक सामान्य समस्या नहीं है कि सीमा 255 पैरामीटर है, लेकिन मैं कभी भी पलट जाने के बारे में नहीं सोचता।
एक आसान उपकरण है जो बहुत समय बचाता है
http://tools.perceptus.ca/text-wiz.php?ops=7
आपको बस तालिका नाम, फ़ील्ड नाम और डेटा - टैब को अलग करना होगा और गो को हिट करना होगा!
आप प्रबंधन स्टूडियो इंटरफ़ेस के माध्यम से एक उपयुक्त तालिका बना सकते हैं और तालिका में डेटा सम्मिलित कर सकते हैं जैसे यह नीचे दिखाया गया है। डेटा की मात्रा के आधार पर इसमें कुछ समय लग सकता है, लेकिन यह बहुत उपयोगी है।
आप निम्नलिखित एक्सेल स्टेटमेंट का उपयोग कर सकते हैं:
="INSERT INTO table_name(`"&$A$1&"`,`"&$B$1&"`,`"&$C$1&"`, `"&$D$1&"`) VALUES('"&SUBSTITUTE(A2, "'", "\'")&"','"&SUBSTITUTE(B2, "'", "\'")&"','"&SUBSTITUTE(C2, "'", "\'")&"', "&D2&");"
यह हार्ट CO के उत्तर से बेहतर है क्योंकि यह कॉलम के नामों को ध्यान में रखता है और कॉलम में उद्धरणों के कारण संकलित त्रुटियों से छुटकारा दिलाता है। अंतिम कॉलम बिना उद्धरण के एक संख्यात्मक मान स्तंभ का एक उदाहरण है।
डेटाबेस के आधार पर, आप CSV को निर्यात कर सकते हैं और फिर आयात विधि का उपयोग कर सकते हैं।
माई एसक्यूएल - http://dev.mysql.com/doc/refman/5.1/en/load-data.html
PostgreSQL - http://www.postgresql.org/docs/8.2/static/sql-copy.html
यहाँ एक और उपकरण है जो बहुत अच्छी तरह से काम करता है ...
http://www.convertcsv.com/csv-to-sql.htm
यह टैब अलग मूल्यों को ले सकता है और एक INSERT स्क्रिप्ट उत्पन्न कर सकता है। बस कॉपी और पेस्ट करें और विकल्पों में चरण 2 के तहत चेक बॉक्स "पहली पंक्ति कॉलम नाम है"
फिर नीचे स्क्रॉल करें और चरण 3 के तहत, बॉक्स में अपना टेबल नाम दर्ज करें "स्कीमा। टेबल या नाम देखें:"
हटाने पर ध्यान दें और साथ ही टेबल चेक बॉक्स बनाएं, और सुनिश्चित करें कि आप इसे चलाने से पहले उत्पन्न स्क्रिप्ट की जांच करें।
यह मेरे द्वारा पाया गया सबसे तेज और सबसे विश्वसनीय तरीका है।
PowerShell गैलरी में ImportExcelConvertFrom-ExcelToSQLInsert
से उपयोग करें
NAME
ConvertFrom-ExcelToSQLInsert
SYNTAX
ConvertFrom-ExcelToSQLInsert [-TableName] <Object> [-Path] <Object>
[[-WorkSheetname] <Object>] [[-HeaderRow] <int>]
[[-Header] <string[]>] [-NoHeader] [-DataOnly] [<CommonParameters>]
PARAMETERS
-DataOnly
-Header <string[]>
-HeaderRow <int>
-NoHeader
-Path <Object>
-TableName <Object>
-WorkSheetname <Object>
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
ALIASES
None
REMARKS
None
यहाँ CSV फ़ाइलों को SQL इन्सर्ट विवरणों में बदलने के लिए एक ऑनलाइन ऑटोमेकर का लिंक दिया गया है:
यह क्वेरी मैंने डेटाबेस में एक्सेल फाइल डेटा डालने के लिए उत्पन्न की है। इस आईडी और मूल्य में संख्यात्मक मान और दिनांक फ़ील्ड भी हैं। इस क्वेरी ने सभी प्रकारों को संक्षेप में प्रस्तुत किया है जिनकी मुझे आवश्यकता है यह आपके लिए भी उपयोगी हो सकता है
="insert into product (product_id,name,date,price) values("&A1&",'" &B1& "','" &C1& "'," &D1& ");"
Id Name Date price
7 Product 7 2017-01-05 15:28:37 200
8 Product 8 2017-01-05 15:28:37 40
9 Product 9 2017-01-05 15:32:31 500
10 Product 10 2017-01-05 15:32:31 30
11 Product 11 2017-01-05 15:32:31 99
12 Product 12 2017-01-05 15:32:31 25
आप एक्सेल शीट का उपयोग करके सम्मिलित स्क्रिप्ट उत्पन्न करने के लिए नीचे C # विधि का उपयोग कर सकते हैं, बस आपको विधि निष्पादित करने से पहले NuGet पैकेज मैनेजर से OfficeOpenXml पैकेज आयात करने की आवश्यकता है।
public string GenerateSQLInsertScripts() {
var outputQuery = new StringBuilder();
var tableName = "Your Table Name";
if (file != null)
{
var filePath = @"D:\FileName.xsls";
using (OfficeOpenXml.ExcelPackage xlPackage = new OfficeOpenXml.ExcelPackage(new FileInfo(filePath)))
{
var myWorksheet = xlPackage.Workbook.Worksheets.First(); //select the first sheet here
var totalRows = myWorksheet.Dimension.End.Row;
var totalColumns = myWorksheet.Dimension.End.Column;
var columns = new StringBuilder(); //this is your columns
var columnRows = myWorksheet.Cells[1, 1, 1, totalColumns].Select(c => c.Value == null ? string.Empty : c.Value.ToString());
columns.Append("INSERT INTO["+ tableName +"] (");
foreach (var colrow in columnRows)
{
columns.Append("[");
columns.Append(colrow);
columns.Append("]");
columns.Append(",");
}
columns.Length--;
columns.Append(") VALUES (");
for (int rowNum = 2; rowNum <= totalRows; rowNum++) //selet starting row here
{
var dataRows = myWorksheet.Cells[rowNum, 1, rowNum, totalColumns].Select(c => c.Value == null ? string.Empty : c.Value.ToString());
var finalQuery = new StringBuilder();
finalQuery.Append(columns);
foreach (var dataRow in dataRows)
{
finalQuery.Append("'");
finalQuery.Append(dataRow);
finalQuery.Append("'");
finalQuery.Append(",");
}
finalQuery.Length--;
finalQuery.Append(");");
outputQuery.Append(finalQuery);
}
}
}
return outputQuery.ToString();}
मुझे अक्सर एसक्यूएल स्क्रिप्ट्स बनानी पड़ती थीं और उन्हें सोर्स कंट्रोल में जोड़कर डीबीए में भेजना पड़ता था। मैंने इस ExcelIntoSQL ऐप को विंडोज़ स्टोर https://www.microsoft.com/store/apps/9NH0W51XXQRM से उपयोग किया है। यह "CREATE TABLE" और INSERTS के साथ पूरी स्क्रिप्ट बनाता है।
मेरे पास एसक्यूएल आवेषण उत्पन्न करने के लिए एक विश्वसनीय तरीका है, और आप प्रसंस्करण में आंशिक मापदंडों को संशोधित कर सकते हैं। यह मुझे अपने काम में बहुत मदद करता है, उदाहरण के लिए, असंगत संरचना और फ़ील्ड काउंट के साथ डेटाबेस में एक सैकड़ों डेटा की प्रतिलिपि बनाएँ। IntellIJ DataGrip , शक्तिशाली उपकरण जिसका मैं उपयोग करता हूं। DG, कॉलम या लाइन द्वारा डब्ल्यूपीएस ऑफिस या एमएस एक्सेल से डेटा प्राप्त कर सकते हैं। कॉपी करने के बाद, DG SQL आवेषण के रूप में डेटा निर्यात कर सकते हैं ।
insert
औरupdate
यहीं ☺