sql >> Databáze >  >> RDS >> Sqlserver

jak zkontrolovat strukturu sloupců v ssis?

Řešení

Na základě vašeho komentáře pracujete s plochými soubory. Chcete-li tento problém vyřešit, musíte číst všechny sloupce jako jeden sloupec a načíst strukturu na cestách.

Podrobnosti

  1. Nejprve přidejte správce připojení plochých souborů.
  2. Ve správci připojení plochých souborů přejděte na kartu Upřesnit, odeberte všechny sloupce a ponechte pouze jeden sloupec (sloupec0) .
  3. Změňte typ sloupce na DT_WSTR a délku na 4000.
  4. Přidejte Dataflow task
  5. Uvnitř Dataflow task přidat zdroj plochého souboru, komponentu skriptu a cíl OLEDB.
  6. Otevřete komponentu skriptu, přejděte na kartu Input/Output a přidejte 8 výstupních sloupců (Distributer_Code, Custom_code,cust_name,cust_add,zip,tel,dl_number,gstin)
  7. Změňte jazyk skriptu na Visual Basic.
  8. Do skriptu napište následující kód.

    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
    
  9. Mapujte výstupní sloupce na OLEDB Destination




  1. jdbc.SQLServerException:Přihlášení pro žádného uživatele se nezdařilo

  2. Použití Oracle JDeveloper s databázovou službou MySQL na platformě Oracle Cloud, část 1

  3. Spojení dvou tabulek SQL

  4. Psychopg2 využívá paměť na velký výběrový dotaz