2011-06-02 18 views
10

मेरे पास फ्लैट फ़ाइल है। मैं फ्लैट फ़ाइल से ssis.And स्तंभ से एक का उपयोग स्रोत तालिका में डेटा लोड हो रहा हूँ निम्नलिखित है मान:व्युत्पन्न कॉलम परिवर्तन में डबल कोट्स को कैसे प्रतिस्थापित करें?

<Somecol1 =""1"" col1values= ""223,567,890,653""> 

मैं निम्नलिखित चाहते स्तंभ उत्पादन:

<Somecol1 ="1" col1values= "223,567,890,653"> 

मैं व्युत्पन्न स्तंभ में बदलने के लिए कोशिश की है ।

REPLACE(COLA, "\"","\") 

लेकिन यह काम नहीं करता है।

उत्तर

21

मुझे लगता है कि प्रतिस्थापन स्ट्रिंग में अतिरिक्त स्लैश को छोड़कर आपको लगभग अभिव्यक्ति सही मिल गई है। यहां अभिव्यक्तियां हैं जो आपके लिए काम कर सकती हैं।

अभिव्यक्ति # 1: किसी दिए गए स्ट्रिंग के भीतर सभी डबल कोट्स को हटा देता है।

REPLACE(COLA, "\"", "") 

अभिव्यक्ति # 2: साथ दोहरे उद्धरण चिह्नों का एकल घटना दोहरे उद्धरण चिह्नों के सभी डबल घटनाओं से बदलता है।

  1. स्क्रीनशॉट # CSV फ़ाइल है कि एक पैकेज द्वारा पढ़ा जाएगा पता चलता है:

    REPLACE(COLA, "\"\"", "\"") 
    

    यहाँ एक उदाहरण है कि अभिव्यक्ति # 1 दर्शाता है।

  2. स्क्रीनशॉट # Derived Column transformationData Flow task कि हैडर के रूप में नामित पहले कॉलम के भीतर सभी दोहरे उद्धरण चिह्नों का स्थान ले लेगा अंदर पता चलता है।
  3. स्क्रीनशॉट # पैकेज निष्पादन के बाद तालिका में डेटा दिखाता है। ध्यान दें कि दूसरे कॉलम में डबल कोट्स छोड़ दिए गए हैं क्योंकि ऐसा करने के लिए कोई अभिव्यक्ति नहीं है।

    1. यह उदाहरण उदाहरण 1 में देखें स्क्रीनशॉट # के रूप में एक ही फाइल का उपयोग करेगा:

    यहाँ एक उदाहरण है कि अभिव्यक्ति # 2 दर्शाता है।

  4. स्क्रीनशॉट # Derived Column transformationData Flow task उस के साथ एकलहैडर के रूप में नामित पहले कॉलम के अंदर दोहरे उद्धरण चिह्नों की घटना दोहरे उद्धरण चिह्नों के सभी डबल घटनाओं का स्थान ले लेगा अंदर पता चलता है।
  5. स्क्रीनशॉट # पैकेज निष्पादन के बाद तालिका में डेटा दिखाता है। ध्यान दें कि दूसरे कॉलम में डबल कोट्स छोड़ दिए गए हैं क्योंकि ऐसा करने के लिए कोई अभिव्यक्ति नहीं है।

आशा है कि मदद करता है।

स्क्रीनशॉट # 1:

1

स्क्रीनशॉट # 2:

2

स्क्रीनशॉट # 3:

3

स्क्रीनशॉट # 4:

4

स्क्रीनशॉट # 5:

5

+0

क्या होगा यदि फ्लैट फ़ाइल स्रोत कनेक्शन फ़ाइल को संसाधित करने में विफल रहता है? आप पहले चरण को पारित नहीं करते हैं और इसलिए इसे व्युत्पन्न कॉलम रूपांतरण में नहीं बना सकते हैं। – topwik

1

यह काम नहीं कर सकता है यदि आपके अन्य कॉलम में कोई समस्या नहीं है, लेकिन यदि यह एकमात्र टेक्स्ट कॉलम है जिसे आप आयात कर रहे हैं या वे सभी इस तरह हैं, तो आप अपने टेक्स्ट पहचानकर्ता को दो डबल कोट्स के बदले बदल सकते हैं में से एक। फिर एसएसआईएस इसे फ्लैट फ़ाइल से सही तरीके से बाहर लाएगा और आपको इसे बाद में साफ करने की कोशिश करने से निपटना पड़ेगा।

+0

मैंने टेक्स्ट पहचानकर्ता को पहले से ही डबल कोट्स के रूप में जोड़ा है। पाठ क्वालीफायर के बाद कॉलम कृपया इसे एक कॉलम – David

+0

@ डेविड - अहह के रूप में मानता है, ठीक है, अब मैं समझता हूं। मैं कॉलम डेटा को डेटा के दो कॉलम के रूप में देख रहा था। स्पष्टीकरण के लिए धन्यवाद। – IAmTimCorey

1

कृपया नमूने नीचे खोजने

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Client_1,"\"",""),"*",""),",",""),"[",""),"]",""),"'",""),"!",""),"/",""),"<>","") 
+10

आपको मुझसे मजाक करना होगा! –

संबंधित मुद्दे