2010-01-28 14 views
8

मैं एक FMT प्रारूप फ़ाइल का उपयोग कर एक तालिका में एक बल्क सम्मिलित कर रहा हूँ, लेकिन मैं निम्नलिखित त्रुटि मिलती है :क्यों मैं मिलता है "XML पार्सिंग: लाइन 2, चरित्र 0, गलत दस्तावेज़ वाक्य रचना" जब एमएस एसक्यूएल सर्वर में थोक डालने

XML parsing: line 2, character 0, incorrect document syntax 

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

BULK INSERT [DM_Flux].[dbo].[Stage] FROM 'C:\temp\data.dat' 
WITH (FORMATFILE = 'C:\temp\FormatBcp.fmt') 

यहाँ formatfile (मानक प्रारूप फ़ाइल, नहीं एक्सएमएल) है:

10.0 
5 
1 SQLCHAR 0 2 "" 1 Id "" 
2 SQLCHAR 0 40 "" 2 Name "" 
3 SQLCHAR 0 50 "" 3 Street "" 
4 SQLCHAR 0 8 "" 4 StreetNo "" 
5 SQLCHAR 0 300 "\r\n" 7 BulkData "" 

मुझे इसके साथ एक्सएमएल त्रुटि क्यों मिलती है?

उत्तर

3

प्रारूप फ़ाइल यूनिकोड के रूप में एन्कोड किया जाता है तो थोक डालने स्वचालित रूप से इसे एक XML- फ़ाइल है लगता है और इस तरह के रूप में यह व्यवहार करेगा। सुनिश्चित करें कि फ़ाइल ANSI के रूप में एन्कोड किया गया है और आपको ठीक होना चाहिए।

+0

मुझे एक ही त्रुटि है। और फ़ाइल _already_ ** ANSI ** है। – inon

8

इसके अलावा सिर्फ मामले में किसी अन्य बिंदु

इस में चलाता है ... क्या आप वाकई फ़ाइल एएनएसआई है, लेकिन अभी भी हो रही है इस त्रुटि प्रारूप फ़ाइल (संस्करण संख्या) की पहली पंक्ति की जाँच कर रहे हैं। संस्करण संख्या आपके SQL संस्करण संख्या से मेल खाना चाहिए (या एक पुराना संस्करण संख्या हो)।

MSDN reference:

The version of the bcp utility (Bcp.exe) used to read a format file must be the same as, or a later version than was used to create the format file. For example, SQL Server 2008 bcp can read a version 9.0 format file, which is generated by SQL Server 2005 bcp, but SQL Server 2005 bcp cannot read a version 10.0 format file, which is generated by SQL Server 2008 bcp.

6

एक अच्छा तरीका यह सुनिश्चित करें कि एमएस एसक्यूएल सर्वर, संस्करण स्वरूप पढ़ .FMT फ़ाइल में संस्करण संख्या को डाउनग्रेड करने में नाकाम रहने के नहीं है। V10.0 से 9.0 या उससे कम बदलें। एमएस एसक्यूएल 2008 एक निम्न संस्करण पढ़ सकता है लेकिन 2005 एक उच्च संस्करण नहीं पढ़ सकता है। इसलिए संस्करण संख्या को डाउनग्रेड करने से समस्या हल हो सकती है। BCP उपयोगिता की

संस्करण संख्या:

9.0 = SQL Server 2005 
10.0 = SQL Server 2008 
11.0 = SQL Server 2012 

गैर XML स्वरूप फ़ाइल आप Microsoft पेज का उल्लेख कर सकते के लिए: http://msdn.microsoft.com/en-us/library/ms191479.aspx