समाधान
आपकी टिप्पणी के आधार पर, आप फ्लैट फाइलों से निपट रहे हैं। इस समस्या को हल करने के लिए, आपको सभी स्तंभों को एक स्तंभ के रूप में पढ़ना होगा और चलते-फिरते संरचना को पुनः प्राप्त करना होगा।
विवरण
- पहले एक फ़्लैट फ़ाइल कनेक्शन प्रबंधक जोड़ें।
- फ्लैट फ़ाइल कनेक्शन प्रबंधक में, उन्नत टैब पर जाएं, सभी कॉलम हटाएं और केवल एक कॉलम रखें (Column0) ।
- स्तंभ प्रकार को DT_WSTR और लंबाई को 4000 में बदलें।
- एक
Dataflow task
Dataflow task
के अंदर एक फ़्लैट फ़ाइल स्रोत, एक स्क्रिप्ट घटक और एक OLEDB गंतव्य जोड़ें।- स्क्रिप्ट घटक खोलें, इनपुट/आउटपुट टैब पर जाएं और 8 आउटपुट कॉलम जोड़ें (Distributer_Code,Cust_code, cust_name, cust_add,zip,tel,dl_number,gstin)
- स्क्रिप्ट की भाषा को विजुअल बेसिक में बदलें।
-
स्क्रिप्ट के अंदर निम्नलिखित कोड लिखें।
Dim Distributer_Code as integer = -1 Dim Cust_code as integer = -1 Dim cust_name as integer = -1 Dim cust_add as integer = -1 Dim zip as integer = -1 Dim tel as integer = -1 Dim dl_number as integer = -1 Dim gstin as integer = -1 Dim intRowIndex as integer = 0 Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) If intRowIndex = 0 then Dim strfields() as string = Row.Column0.split(CChar("|")) Dim idx as integer = 0 For idx = 0 To strFields.length - 1 Select case str Case "Distributer_Code" Distributer_Code = idx Case "Cust_code" Cust_code = idx Case "cust_name" cust_name = idx Case "cust_add" cust_add = idx Case "zip" zip = idx Case "tel" tel = idx Case "dl_number" dl_number = idx Case "gstin" gstin = idx End Select Next Else Dim strfields() as string = Row.Column0.split(CChar("|")) If Distributer_Code > -1 Then Row.DistributerCode = strfields(Distributer_Code) If Cust_code > -1 Then Row.Custcode = strfields(Cust_code) If cust_name > -1 Then Row.custname = strfields(cust_name) If cust_add > -1 Then Row.custadd = strfields(cust_add) If zip > -1 Then Row.zip = strfields(zip) If tel > -1 Then Row.tel = strfields(tel) If dl_number > -1 Then Row.dlnumber = strfields(dl_number) If gstin > -1 Then Row.gstin = strfields(gstin) End If intRowIndex += 1 End Sub
-
आउटपुट कॉलम को OLEDB डेस्टिनेशन पर मैप करें