我在SSIS中读取的excel中有ABC1234
,AB12
,CDFHY1234
等值,我需要将它们分开来分隔字母和数字。
正如你所看到的,我们无法预测那些可以在数值中的数字。
请帮我找出一种在SSIS中单独拆分的方法。
感谢您的帮助。
答案 0 :(得分:1)
首先,您必须在DataFlowTask
中添加脚本组件,并在其中添加2个输出列。并将列标记为输入列。
其次,您必须使用脚本来拆分此字符串值。
在脚本中声明这些函数
Private Shared Function GetNum(ByVal value As String) As Integer
Dim mytext As String = String.Empty
Dim myChars() As Char = Value.ToCharArray()
For Each ch As Char In myChars
If Char.IsDigit(ch) Then
myText &= ch
End If
Next
Return Cint(myText)
End Function
Private Shared Function GetText(ByVal value As String) As String
Dim mytext As String = String.Empty
Dim myChars() As Char = Value.ToCharArray()
For Each ch As Char In myChars
If Char.IsLetter(ch) Then
myText &= ch
End If
Next
Return myText
End Function
请考虑您的输入列为inCol
,输出列为outNum
和outText
If Row.inCol_IsNull = False Then
Row.outText = GetText(Row.inCol)
Row.outNum = GetNum(Row.inCol)
Else
Row.outText_IsNull = True
Row.outNum_IsNull = True
End If