SSIS中 “条件拆分”组件中 ISNUMERIC的问题
在SSIS的中没有提供有ISNUMERIC这个函数.
所以如果想在要”条件拆分”中.将某个列数据是数值的数据和不是数值的数据分支的话,就不能直接使用”条件拆分”组件.
在这里使用”脚本组件”来完成此任务.
文本文件数据如下:
id,col
1,10
2,liang
3,50.4
4,562
5,lan
1.添加一个数据流任务.然后在数据流任务中.添加一个平面文件源.并设置好.在此设置不详说.
2.添加一个”脚本组件”.并设置类型为”转换”.双击进入”脚本组件编辑器”
在”输入列”中选择”col” ,使用类型为ReadOnly
在”输入与输出”选项卡中.添加一个”输出”.名称为”输出1”
3.并将”输出1”中的ExclusionGroup设置为1, SynchronousInputID为”输入0”的ID
并将”输出0”中的ExclustionGroup设置为1. SynchronousInputID为”输入0”的ID
4.然后在”脚本”.设计脚本
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub 输入_ProcessInputRow(ByVal Row As 输入Buffer)
Dim result As Double
If Double.TryParse(Row.col, result) Then
Row.DirectRowTo输出0()
Else
Row.DirectRowTo输出1()
End If
End Sub
End Class
完成”脚本组件”的设置.并设置两个分拆的输出.即可.