Ringkasan Solusi
Anda dapat melakukannya dengan menambahkan satu Flat File Connection Manager
tambahkan hanya satu kolom dengan Tipe data DT_WSTR
dan panjang 4000
(dengan asumsi namanya adalah Column0
) - Jadi semua kolom dianggap sebagai satu kolom besar
- Dalam
Dataflow task
tambahkanScript Component
setelahFlat File Source
- Dalam tanda
Column0
sebagai Kolom Input dan Tambahkan 17 Kolom Output - Dalam
Input0_ProcessInputRow
pemisahan metodeColumn0
oleh pembatas, Kemudian periksa apakah panjang larik =17 lalu tetapkan nilai ke kolom keluaran, Jika tidak abaikan baris.
Solusi Detail
- Tambahkan pengelola koneksi file datar, Pilih file teks
- Buka Tab Lanjutan , Hapus semua Kolom kecuali satu Kolom
- Ubah tipe data Kolom remianing menjadi
DT_WSTR
dan panjang =4000
- Tambahkan Tugas DataFlow
- Di dalam Tugas Aliran Data, tambahkan Sumber File Datar, Komponen Skrip, dan Tujuan OLEDB
- Pada Komponen Script Pilih
Column0
sebagai Kolom Masukan
- Tambahkan 17 Kolom Keluaran (kolom keluaran optimal)
- Ubah
OutputBuffer
SynchronousInput
properti keNone
- Pilih Bahasa Script untuk
Visual Basic
-
Di Script Editor tulis Script berikut
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) If Not Row.Column0_IsNull AndAlso Not String.IsNullOrEmpty(Row.Column0.Trim) Then Dim strColumns As String() = Row.Column0.Split(CChar(";")) If strColumns.Length <> 17 Then Exit Sub Output0Buffer.AddRow() Output0Buffer.Column = strColumns(0) Output0Buffer.Column1 = strColumns(1) Output0Buffer.Column2 = strColumns(2) Output0Buffer.Column3 = strColumns(3) Output0Buffer.Column4 = strColumns(4) Output0Buffer.Column5 = strColumns(5) Output0Buffer.Column6 = strColumns(6) Output0Buffer.Column7 = strColumns(7) Output0Buffer.Column8 = strColumns(8) Output0Buffer.Column9 = strColumns(9) Output0Buffer.Column10 = strColumns(10) Output0Buffer.Column11 = strColumns(11) Output0Buffer.Column12 = strColumns(12) Output0Buffer.Column13 = strColumns(13) Output0Buffer.Column14 = strColumns(14) Output0Buffer.Column15 = strColumns(15) Output0Buffer.Column16 = strColumns(16) End If End Sub
-
Petakan Kolom Keluaran ke Kolom Tujuan