Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

bagaimana cara memeriksa struktur kolom di ssis?

Solusi

Berdasarkan komentar Anda, Anda menangani dengan file datar. Untuk mengatasi masalah ini, Anda harus membaca semua kolom sebagai satu kolom dan mengambil struktur saat bepergian.

Detail

  1. Pertama tambahkan pengelola koneksi file datar.
  2. Di pengelola koneksi file datar, buka Tab Lanjutan, hapus semua kolom dan simpan hanya satu kolom (Kolom0) .
  3. Ubah jenis kolom menjadi DT_WSTR dan panjangnya menjadi 4000.
  4. Tambahkan Dataflow task
  5. Di dalam Dataflow task tambahkan sumber File Datar, komponen skrip, dan tujuan OLEDB.
  6. Buka komponen skrip, buka Tab Input/Output dan tambahkan 8 kolom output (Distributer_Code,Cust_code,cust_name,cust_add,zip,tel,dl_number,gstin)
  7. Ubah bahasa skrip ke Visual Basic.
  8. Di dalam skrip tulis kode berikut.

    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. Petakan kolom output ke OLEDB Destination




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memahami Alias ​​Kolom di Select Query di SQL Server - Tutorial SQL Server / TSQL Bagian 115

  2. Bagaimana saya bisa membuat skrip INSERT untuk tabel SQL Server yang ada yang menyertakan semua baris yang disimpan?

  3. Kinerja SQL JOIN vs IN?

  4. Pivot SQL Server vs. beberapa gabungan

  5. Cara Membuat Skrip DDL (Buat) dari SQL Server Management Studio (SSMS) - Tutorial SQL Server / TSQL Bagian 17