2012-08-27 26 views
16

मैं अपने डेटाबेस को एक .csv फ़ाइल से 1.4 जीबी आकार के टन के साथ लोड करने का प्रयास करता हूं। लेकिन जब मैं अपना कोड चलाने की कोशिश करता हूं तो मुझे त्रुटियां मिलती हैं।लिंक किए गए सर्वर के लिए ओएलई डीबी प्रदाता "बल्क" से एक पंक्ति नहीं ला सकता है "(शून्य)"

USE [Intradata NYSE] 
GO 
CREATE TABLE CSVTest1 
(Ticker varchar(10) NULL, 
dateval date NULL, 
timevale time(0) NULL, 
Openval varchar(10) NULL, 
Highval varchar(10) NULL, 
Lowval varchar(10) NULL, 
Closeval varchar(10) NULL, 
Volume varchar(10) NULL 
) 
GO 

BULK 
INSERT CSVTest1 
FROM 'c:\intramerge.csv' 
WITH 
(
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
) 
GO 
--Check the content of the table. 
SELECT * 
FROM CSVTest1 
GO 
--Drop the table to clean up database. 
DROP TABLE CSVTest1 
GO 

मैं stockquotes के बहुत सारे के साथ एक डेटाबेस बनाने की कोशिश:

यहाँ मेरी कोड है।

संदेश 4832, स्तर 16, राज्य 1, पंक्ति 2 थोक लोड: फ़ाइल का कोई अनपेक्षित अंत डेटा फ़ाइल में सामना करना पड़ा था लेकिन मैं इस त्रुटि संदेश मिलता है। संदेश 739 9, स्तर 16, राज्य 1, रेखा 2 लिंक किए गए सर्वर के लिए ओएलई डीबी प्रदाता "बल्क" "(शून्य)" एक त्रुटि की सूचना दी। प्रदाता ने त्रुटि के बारे में कोई जानकारी नहीं दी। संदेश 7330, स्तर 16, राज्य 2, पंक्ति 2 OLE DB प्रदाता जुड़ा हुआ सर्वर के लिए "बल्क" "(शून्य)"

से एक पंक्ति नहीं लाई जा सकती मैं एसक्यूएल की ज्यादा समझ में नहीं आता है, लेकिन मैं पकड़ने के लिए आशा एक बात या दो। उम्मीद है कि कोई देखता है कि क्या बहुत स्पष्ट हो सकता है।

उत्तर

4

मुझे वही त्रुटि मिली जब मेरे पास मेरी तालिका में कॉलम की तुलना में मेरे सीएसवी में सीमित संख्या में सीमित फ़ील्ड थे। जांचें कि क्या आपके पास intramerge.csv में फ़ील्ड की सही संख्या है या नहीं।

1

यह एक पुराना सवाल था, लेकिन ऐसा लगता है कि मेरी खोज कुछ अन्य लोगों को एक समान समस्या के बारे में बताएगी।

डिफ़ॉल्ट एसएसआईएस टाइमआउट मान 30 सेकंड लगता है। इससे आपके पैकेज में कोई भी सेवा बाध्य या आईओ बाध्य ऑपरेशन उस टाइमआउट मान से काफी आगे जाता है और टाइमआउट का कारण बनता है। उस टाइमआउट मान को बढ़ाने (किसी भी टाइमआउट के लिए "0" में परिवर्तन) इस मुद्दे को हल करेगा।

11

मुझे एक ही समस्या थी।

समाधान:

तरह नोटपैड + पाठ संपादक में सीएसवी या textfile सत्यापित करें। अंतिम पंक्ति अपूर्ण हो सकती है। इसे हटा दो। इस बदलकर ज्यादा परीक्षण और त्रुटि के बाद मैं अंत में था इस त्रुटि से छुटकारा पाने के लिए सक्षम:

9

एक पुराने सवाल का पुनर्निर्माण करना है, लेकिन इस मामले में यह किसी और में मदद करता है (अंत में!):

ROWTERMINATOR = '\n' 

करने के लिए इस:

ROWTERMINATOR = '0x0A' 
+1

यह मेरे लिए काम किया। साथ ही मैं फूटर या मुद्दों के लिए बड़ी फ़ाइलों के अंत का निरीक्षण करने के लिए सीएमडी में 'अधिक' कमांड चलाने की सलाह देता हूं। यदि आप 'अधिक + n [फ़ाइल नाम] करते हैं, तो सीएमडी' एन' के बाद सभी लाइनें दिखाएगा, फ़ाइल के अंत के करीब निरीक्षण करने के लिए इसका उपयोग करें। – rjmd

2

मैं जब मेरे प्रारूप फ़ाइल (यानी FORMATFILE परम का उपयोग करके निर्दिष्ट) यह त्रुटि आई एक स्तंभ चौड़ाई है कि वास्तविक स्तंभ आकार से छोटा था (जैसे varchar(50)varchar(100) के बजाय) था।

+0

मेरे लिए इसी तरह का मामला, कॉलम के 'int' डेटाटाइप को 'bigint' में बदलना समस्या हल करता है। हालांकि मुझे लगता है कि इसे 'ओवरफ्लो' त्रुटि उठानी चाहिए। – Athafoud

+0

मेरे लिए वही है। कॉलम आकार के साथ कुछ भी नहीं करना, लेकिन एक गलत स्वरूप फ़ाइल सभी समान है। –

1

मुझे यह अपवाद मिला जब मेरे SQL तालिका में चार फ़ील्ड टेक्स्ट आने के लिए बहुत छोटा था। कॉलम को बड़ा बनाने का प्रयास करें।

0

यह एक पूर्ण 1.5GB के साथ एक बुरा विचार हो सकता है, लेकिन आप (कुछ पंक्तियों के साथ शुरू) एक उपसमूह पर यह कोशिश कर सकते हैं:

CREATE TABLE CSVTest1 
(Ticker varchar(MAX) NULL, 
    dateval varchar(MAX) NULL, 
    timevale varchar(MAX) NULL, 
    Openval varchar(MAX) NULL, 
    Highval varchar(MAX) NULL, 
    Lowval varchar(MAX) NULL, 
    Closeval varchar(MAX) NULL, 
    Volume varchar(MAX) NULL 
) 

...अपने बल्क सम्मिलित करें, तो

SELECT MAX(LEN(Ticker)), 
    MAX(LEN(dateval)), 
    MAX(LEN(timevale)), 
    MAX(LEN(Openval)), 
    MAX(LEN(Highval)), 
    MAX(LEN(Lowval)), 
    MAX(LEN(Closeval)), 
    MAX(LEN(Volume)) 

यह आपको बताती हैं कि स्तंभ के अपने अनुमानों तरह से बंद कर रहे हैं मदद मिलेगी। आप यह भी पा सकते हैं कि आपके कॉलम ऑर्डर से बाहर हैं, या बल्क इन्टरेट अभी भी किसी अन्य कारण से असफल हो सकता है।