我在SSIS工作。我有一个平面文件,其中一列提供输出24列的脚本任务。我的脚本任务抛出了这个错误:
System.InvalidCastException:从字符串"" IB""转换键入' Single'无效。 ---> System.FormatException:输入字符串的格式不正确。
我的平面文件连接字符串,输入列和所有输出列都设置为unicode字符串。
我的VB.Net代码如下:
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
据我所知,我在代码或连接字符串中的任何地方都没有使用浮点数。
代码抛出以下异常:
转换为字符串&#34;&#34; IB&#34;&#34;键入&#39; Single&#39;无效。
at Microsoft.VisualBasic.CompilerServices.Conversions.ToSingle(String Value,NumberFormatInfo NumberFormat) 在SC_5230962b79f144d082bc4f4027a93d01.ScriptMain.Input0_ProcessInputRow(Input0Buffer Row) at SC_5230962b79f144d082bc4f4027a93d01.UserComponent.Input0_ProcessInput(Input0Buffer Buffer) at SC_5230962b79f144d082bc4f4027a93d01.UserComponent.ProcessInput(Int32 InputID,String InputName,PipelineBuffer Buffer,OutputNameMap OutputMap) 在Microsoft.SqlServer.Dts.Pipeline.ScriptComponent.ProcessInput(Int32 InputID,PipelineBuffer buffer) 在Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID,PipelineBuffer buffer)
异常窗口说这是在我的脚本任务中,但代码开头的断点似乎永远不会被触发。
提前感谢您的协助。
大卫
答案 0 :(得分:0)
我向所有人道歉。数据很乱,我不得不重建文本文件。请忽略。谢谢。