Lösning
Baserat på din kommentar hanterar du platta filer. För att lösa detta problem måste du läsa alla kolumner som en kolumn och hämta strukturen när du är på språng.
Detaljer
- Lägg först till en anslutningshanterare för platt fil.
- I den platta filanslutningshanteraren, gå till fliken Avancerat, ta bort alla kolumner och behåll bara en kolumn (kolumn0) .
- Ändra kolumntypen till DT_WSTR och längden till 4000.
- Lägg till en
Dataflow task
- Inuti
Dataflow task
lägg till en platt filkälla, en skriptkomponent och en OLEDB-destination. - Öppna skriptkomponenten, gå till fliken Input/Output och lägg till 8 utdatakolumner (Distributer_Code,Cust_code,cust_name,cust_add,zip,tel,dl_number,gstin)
- Ändra skriptspråket till Visual Basic.
-
Skriv följande kod inuti skriptet.
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
-
Mappa utdatakolumnerna till OLEDB-destinationen