2011-09-22 16 views
13

मैं यहाँ इस त्रुटिथोक लोड डेटा रूपांतरण त्रुटि (काट-छांट)

Bulk load data conversion error (truncation) for row 1, column 12 (is_download) 

हो रही है सीएसवी है ... यह केवल एक पंक्ति

30,Bill,Worthy,sales,,709888499,[email protected],,"Im a a people person., to work together for this new emerging env.HTTP://applesoftware.com","Bill and Son of Co","Contact Us: Contact Form",0 

है यहाँ मेरी बल्क डालने बयान है .. ।

SE SalesLogix 
GO 

CREATE TABLE CSVTemp 
(id INT, 
firstname VARCHAR(255), 
lastname VARCHAR(255), 
department VARCHAR(255), 
architecture VARCHAR(255), 
phone VARCHAR(255), 
email VARCHAR(255), 
download VARCHAR(255), 
comments VARCHAR(MAX), 
company VARCHAR(255), 
location VARCHAR(255), 
is_download VARCHAR(255) 
) 
GO 

BULK 
INSERT CSVTemp 
FROM 'c:\leads\leads.csv' 
WITH 
(
DATAFILETYPE = 'char', 
BATCHSIZE = 50, 
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
) 
GO 
--Check the content of the table. 
SELECT * 
FROM CSVTemp 
GO 

समस्या समय यह बहुत अच्छा काम करता है के सबसे लेकिन कुछ स्थितियों में (यह उनमें से एक है) मैं है त्रुटियों

क्या इस त्रुटि

उत्तर

12

यह डिलीमीटर के रूप में टिप्पणी के क्षेत्र के भीतर के लिए अल्पविराम उठा रहा है, क्योंकि सीमांकक संगत नहीं हैं इस रिकॉर्ड खड़ी कर रहा है पर किसी भी विचार। सबसे अच्छा समाधान बीमा करना है कि सभी फ़ील्ड डबल कोट्स के साथ लपेटे गए हैं और FIELDTERMINATOR'","' पर सेट करें। वैकल्पिक रूप से, कॉमा को टिप्पणियों में होने की संभावना के साथ प्रतिस्थापित करें (जैसे ~) और FIELDTERMINATOR = '~' सेट करें।

+0

धन्यवाद बहुत – Trace

6

विल्स की टिप्पणियों के अतिरिक्त, ऐसा लगता है कि यह सभी 12 कॉलम देख रहा है, इसलिए यह हो सकता है कि आपका रोटरमिनेटर गलत है। सबसे पहले, सुनिश्चित करें कि प्रोग्राम जो इन फ़ाइलों को एक साथ रखता है वास्तव में आखिरी पंक्ति के अंत में एक कैरिज रिटर्न डाल रहा है; मुझे कई कार्यक्रमों को सही करना पड़ा जहां यह मामला नहीं था। एक बार जब आप सुनिश्चित हो जाएं कि वहां एक कैरिज रिटर्न है, तो आपको यह देखने के लिए प्रयोग करना पड़ सकता है कि कैरिज किस प्रकार की वापसी करता है। कभी-कभी यह केवल चार (10) होता है, कभी-कभी चार (13) केवल, और कभी-कभी यह गलत क्रम में हो सकता है।

ROWTERMINATOR = '\n' 
ROWTERMINATOR = '\r' 
ROWTERMINATOR = '\n\r' 
ROWTERMINATOR = '\r\n' 
+0

अक्सर मदद की अगर rowterminator गलत या असंगत है यह जब तक यह मान्यता प्राप्त टर्मिनेटर या यहाँ तक कि EOF हिट पंक्तियों गठबंधन करने के लिए यह हो सकता है। मैंने पहले ऐसा किया था। – Wil

0

System.Data.SqlClient.SqlException (0x80131904):: तो साथ प्रयोग पंक्ति 97 के लिए बल्क लोड डेटा रूपांतरण त्रुटि (काट-छांट), स्तंभ 33

उपरोक्त त्रुटि के लिए, आप जाँच कर सकते हैं अगर यह डेटा या नहीं आयात करने के लिए पर्याप्त है

  • डेटा प्रकार आकार स्तंभ के (जैसे VARCHAR (255)) है।
  • और पंक्ति टर्मिनेटर उदा।
    • ROWTERMINATOR = '0x0A'
    • ROWTERMINATOR = '\ n'
    • ROWTERMINATOR = '\ r \ n'
  • FIELDTERMINATOR
    • सुनिश्चित हैं कि चयनित क्षेत्र टर्मिनेटर नहीं करता है डेटा में होता है। यदि इसका कोई मौका है, तो इसे किसी अन्य चरित्र के साथ बदलें। | फाइल में कि @wil
संबंधित मुद्दे