SSIS中 “条件拆分”组件中 ISNUMERIC的问题

liangCK 2009-10-09 10:56:22
加精
SSIS中 “条件拆分”组件中 ISNUMERIC的问题

在SSIS的中没有提供有ISNUMERIC这个函数.
所以如果想在要”条件拆分”中.将某个列数据是数值的数据和不是数值的数据分支的话,就不能直接使用”条件拆分”组件.
在这里使用”脚本组件”来完成此任务.

文本文件数据如下:
id,col
1,10
2,liang
3,50.4
4,562
5,lan

1.
添加一个数据流任务.然后在数据流任务中.添加一个平面文件源.并设置好.在此设置不详说.
2.
添加一个”脚本组件”.并设置类型为”转换”.双击进入”脚本组件编辑器”
在”输入列”中选择”col” ,使用类型为ReadOnly
3. 在”输入与输出”选项卡中.添加一个”输出”.名称为”输出1”
并将”输出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输出()
Else
Row.DirectRowTo输出()
End If
End Sub

End Class


完成”脚本组件”的设置.并设置两个分拆的输出.即可.



...全文
1755 71 打赏 收藏 转发到动态 举报
写回复
用AI写文章
71 条回复
切换为时间正序
请发表友善的回复…
发表回复
jidianxueyuan 2009-12-18
  • 打赏
  • 举报
回复
ding
taoistong 2009-10-27
  • 打赏
  • 举报
回复
路过
glx9918 2009-10-27
  • 打赏
  • 举报
回复
99
glx9918 2009-10-27
  • 打赏
  • 举报
回复
99999999
glx9918 2009-10-27
  • 打赏
  • 举报
回复
99999
sunqin119 2009-10-27
  • 打赏
  • 举报
回复
学习
libinxinjiang 2009-10-26
  • 打赏
  • 举报
回复
辛苦了
nidhiexisb 2009-10-24
  • 打赏
  • 举报
回复
谢谢 以
wjfxyj 2009-10-24
  • 打赏
  • 举报
回复
学习
hwh1985 2009-10-23
  • 打赏
  • 举报
回复
不懂
guidahuasheng 2009-10-23
  • 打赏
  • 举报
回复


没学过VB
yefangke 2009-10-23
  • 打赏
  • 举报
回复
UP一下
netcup 2009-10-23
  • 打赏
  • 举报
回复
看来还得学习VB啊?
rb56gf 2009-10-22
  • 打赏
  • 举报
回复
路过看看呢.看看学习学习.
zhaiershuaixu 2009-10-22
  • 打赏
  • 举报
回复
不太懂,学习中!
jing5453 2009-10-22
  • 打赏
  • 举报
回复
完全看不懂。。。。
abuei 2009-10-21
  • 打赏
  • 举报
回复
好好学习
anthony2006 2009-10-21
  • 打赏
  • 举报
回复
Please give me a favor, who can transfer vb to C# in this case ?

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


heg009 2009-10-21
  • 打赏
  • 举报
回复
学习!
yraxl 2009-10-21
  • 打赏
  • 举报
回复
学习下……
加载更多回复(46)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧