次のスクリプトでインデックスが範囲外になりました。私は1つの入力列と11の出力列をSSISスクリプトコンポーネントに追加しました。これらすべてのデータ型は文字列です。どこが間違っているのか分かりません。 ありがとうございました。餃子にvb.netスクリプトでインデックスの範囲外エラーが発生しました
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim strRow As String
Dim strColSeperator As String
Dim rowValues As String()
strRow = Row.Line.ToString()
If strRow.Contains("-") Then
strColSeperator = ("-")
ElseIf strRow.Contains(";") Then
strColSeperator = ";"
End If
rowValues = Row.Line.Split(CChar(strColSeperator))
Row.Invoices = rowValues.GetValue(0).ToString()
Row.Detail = rowValues.GetValue(1).ToString()
Row.Date = rowValues.GetValue(2).ToString()
Row.Something1 = rowValues.GetValue(3).ToString()
Row.Something2 = rowValues.GetValue(4).ToString()
Row.SomeNumber = rowValues.GetValue(5).ToString()
Row.CustomerName = rowValues.GetValue(6).ToString()
Row.InvoiceNumber = rowValues.GetValue(7).ToString()
Row.InvoiceNumber2 = rowValues.GetValue(8).ToString()
Row.InvoiceNumber3 = rowValues.GetValue(9).ToString()
Row.InvoiceNumber4 = rowValues.GetValue(10).ToString()
End Sub
ドルは、あなたがそこにskunkyデータを持っています。スクリプト変換で、問題の行をキャッチするために2番目の出力(出力1)を追加します。既存のデータ型に一致する列を出力1に追加します。上記のコードをtry/catchブロックで囲みます。キャッチ部分に、これら2行の 'Output1Buffer.AddRow()'と 'Output1Buffer.Line = Row.Line'を追加します。それらをファイルに追加したり、データビューアを追加して、期待されるサイズに分割できない理由を確認します。 – billinkc