2009-04-02 8 views
6

के साथ सीमित मेरे पास उद्धरण पाठ डिलीमीटर के साथ एक CSV फ़ाइल है। 90000 पंक्तियों में से अधिकांश ठीक हैं, लेकिन मेरे पास कुछ पंक्तियां हैं जिनमें एक टेक्स्ट फ़ील्ड है जिसमें उद्धरण और अल्पविराम दोनों शामिल हैं। उदाहरण के लिए खेतों मूल्य होगा:एसक्यूएल 2005 सीएसवी आयात उद्धरण आंतरिक उद्धरण और कॉमा

एबी ", एबी

जब सीमांकित इस हो जाता है

" अटल बिहारी "", अटल बिहारी "

जब एसक्यूएल 2005 इसे आयात करने के प्रयासों में मुझे त्रुटियां मिलती हैं जैसे ...

Messages 
Error 0xc0202055: Data Flow Task: The column delimiter for column "Column 4" was not found. 
(SQL Server Import and Export Wizard)

ऐसा लगता है कि एक उद्धरण और कॉमा एक साथ पाठ मूल्य में हैं।

एबी "एबी जो बन जाता है" अटल बिहारी "" अटल बिहारी " या एबी, एबी जो" एबी, एबी "

काम ठीक हो जाता है की तरह मान।

यहां कुछ उदाहरण पंक्तियाँ हैं ...

 
"1464885","LEVER WM","","B","MP17" 
"1465075",":PLT-BC !!NOTE!!","","B","" 
"1465076","BRKT-STR MTR   !NOTE!","","B","" 
"1465172",":BRKT-SW MTG !NOTE!","","B","MP16" 
"1465388","BUSS BAR    !NOTE!","","B","MP10" 
"1465391","PLT-BLKHD  ""NOTE""","","B","MP20" 
"1465564","SPROCKET:13TEETH,74MM OD,66MM","ID W/.25"" SETSCR","B","MP6" 
"S01266330002","CABLE:224"",E122/261,8 CO","","B","MP11" 

अंतिम पंक्ति समस्या का एक उदाहरण है - "", त्रुटि होती है

उत्तर

0

मैं बस है एक खोज/के लिए जगह लेंगे। ", और इसे बदलना के साथ,

क्या आपके पास मूल फ़ाइल तक पहुंच है?

+0

नहीं, मेरे पास केवल आयात फ़ाइल तक पहुंच है। फ़ाइल भी ", या" "से भरी है, जो मान्य हैं। यहां कुछ उदाहरण पंक्तियां हैं ... " 1465564 "," स्पॉकेट: 13TEETH, 74 एमएम ओडी, 66 एमएम "," आईडी डब्ल्यू /25 "" एसईटीएससीआर "," बी "," एमपी 6 " " एस 01266330002 "," कैबल: 224 "", ई 122/261,8 सीओ "," "," बी "," एमपी 11 " दूसरी पंक्ति –

1

कैसे बस के बारे में:

  1. खोजें/'से' सब की जगह ""; (सभी टूटे हुए फ़ील्ड को ठीक करें)
  2. सभी खोजें/बदलें; ''; साथ, "", ("ठीक से" ठीक से फ़ील्ड को "unfix" करने के लिए।)
  3. सभी '' खोजें 'को बदलें/बदलें; के साथ "", "",

("खोलना" ठीक से खाली फ़ील्ड जो एम्बेडेड सीमांकक का सही कैप्सूलीकरण का पालन करें।) यही कारण है कि अपने मूल धर्मान्तरित करने के लिए:

"1464885","LEVER WM","","B","MP17" 
"1465075",":PLT-BC !!NOTE!!","","B","" 
"1465076","BRKT-STR MTR   !NOTE!","","B","" 
"1465172",":BRKT-SW MTG !NOTE!","","B","MP16" 
"1465388","BUSS BAR    !NOTE!","","B","MP10" 
"1465391","PLT-BLKHD  ""NOTE""","","B","MP20" 
"1465564","SPROCKET:13TEETH,74MM OD,66MM","ID W/.25"" SETSCR","B","MP6" 
"S01266330002","CABLE:224'';E122/261,8 CO","","B","MP11" 

कौन सा चुनौती को चलाने के लिए लगता है एसएसआईएस में ठीक है। आपको पंक्ति में 3 रिक्त फ़ील्ड ('' '' '' '' '';, इत्यादि) के लिए 3 रिकर्सिवली बार चरणबद्ध करना पड़ सकता है, लेकिन नीचे की रेखा यह है कि जब आपने टेक्स्ट क्वालीफायर एम्बेड किए हैं, तो आपको या तो उन्हें बचाना होगा या उन्हें प्रतिस्थापित करें। इसे आगे बढ़ने के लिए अपनी सीएसवी निर्माण प्रक्रियाओं में एक सबक दें।

+0

एक और टिप्पणी में, ओपी का कहना है कि उसके पास केवल आयात फ़ाइल तक पहुंच है, सीएसवी सृजन नहीं। इसके अलावा, आपका उत्तर डेटा को बदलता है (एकल-उद्धरण के लिए डबल-कोट्स); इसलिए यह वास्तव में इस डेटा को आयात करने की समस्या को हल नहीं कर रहा है। – goodeye

4

मुझे एसएसआईएस के साथ बड़ी समस्याएं आई हैं। एक्सेस, एक्सेल और यहां तक ​​कि डीटीएस की चीजें बहुत अच्छी तरह से लग रही थीं, एसएसआईएस चोक करता है। परिवर्तनीय रिकॉर्ड-लंबाई डेटा एक और समस्या है, लेकिन, ये एम्बेडेड क्वालीफायर एक बड़ी समस्या है। विशेष रूप से यदि आपके पास आयात फ़ाइलों तक पहुंच नहीं है क्योंकि वे किसी और के सर्वर पर हैं जो आप पहुंच प्राप्त करने के लिए भुगतान करते हैं और आकार में 4 से 5 जीबी भी हो सकते हैं! उस आयात पर बस "सभी को प्रतिस्थापित करें" पर जाएं।

आप इसे "UnDouble" नामक माइक्रोसॉफ्ट डाउनलोड पर जांचना चाहेंगे और यहां एक और workaround है जो आप कोशिश कर सकते हैं।

एसक्यूएल सर्वर 2008 में एसएसआईएस की तरह लगता है, बग अभी भी वहां है। मुझे नहीं पता कि उन्होंने पार्सर में इसे क्यों संबोधित किया है, लेकिन जैसे ही हम बुनियादी आयात कार्यक्षमता में एसएसआईएस के साथ समय पर वापस गए।

अद्यतन 11-18-2010: यह बग अभी भी एसएसआईएस में मौजूद है। गजब का।

1

Microsoft says डबल कोट उद्धृत फ़ील्ड के अंदर डबल कोट्स दोगुनी होकर काम नहीं करते हैं। 2011 के अंत तक एक फिक्स की योजना बनाई गई है ...

इसी समय हमें अन्य उत्तरों में वर्णित वर्कअराउंड का उपयोग करना होगा।

+0

अभी भी तय नहीं है ... – NotMe