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 tasktambahkanScript ComponentsetelahFlat File Source - Dalam tanda
Column0sebagai Kolom Input dan Tambahkan 17 Kolom Output - Dalam
Input0_ProcessInputRowpemisahan metodeColumn0oleh 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_WSTRdan panjang =4000

- Tambahkan Tugas DataFlow
- Di dalam Tugas Aliran Data, tambahkan Sumber File Datar, Komponen Skrip, dan Tujuan OLEDB

- Pada Komponen Script Pilih
Column0sebagai Kolom Masukan

- Tambahkan 17 Kolom Keluaran (kolom keluaran optimal)
- Ubah
OutputBufferSynchronousInputproperti 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