如何在ssis的条件拆分组件中检查列是否为整数?
我有以下SSIS包: 在我的包中,平面文件源数据馈送到条件拆分组件中。其中一列是如何在ssis的条件拆分组件中检查列是否为整数?,ssis,ssis-2012,Ssis,Ssis 2012,我有以下SSIS包: 在我的包中,平面文件源数据馈送到条件拆分组件中。其中一列是AccountNo。 平面文件源输出数据类型中的列是:string[DT\u STR] 如果AccountNo是整数,我想检查约束检查组件。例如,平面文件源中的列可能是: 12355ss2rt3 输入不是整数。我想向约束检查输出传递一个有效的整数。在约束检查组件中,我有以下内容: 此表达式使用类型转换组和(DT_I8)条件,但我得到以下错误: 如何解决此问题?直接使用条件拆分您将无法执行此操作 使用派生列/脚
AccountNo
。
平面文件源输出数据类型中的列是:string[DT\u STR]
如果AccountNo
是整数,我想检查约束检查组件。例如,平面文件源中的列可能是:
12355ss2rt3
输入不是整数。我想向约束检查输出传递一个有效的整数。在约束检查组件中,我有以下内容:
此表达式使用类型转换组和(DT_I8)
条件,但我得到以下错误:
如何解决此问题?直接使用条件拆分您将无法执行此操作 使用派生列/脚本组件检查数据是否为数字 创建派生列isNumeric 表达式:(DT_I4)AccountNo==(DT_I4)AccountNo?1:0
现在在条件拆分中使用此选项。直接使用条件拆分将无法执行此操作 使用派生列/脚本组件检查数据是否为数字 创建派生列isNumeric 表达式:(DT_I4)AccountNo==(DT_I4)AccountNo?1:0
现在在条件拆分中使用它。您可以使用派生列来完成此操作 在我的示例中,输入为:
AccountNo
123
1234
123f
1e23
步骤1:尝试将字符串强制转换为整数
只需使用派生列,尝试转换为I8
(DT_I8)账号
步骤2:配置错误输出,以捕获错误行
成功转换行将转到nomarl流,无法转换到I8的值将重定向到错误流。
一般数据流如下所示(查看屏幕截图):
要获取错误值,只需从驱动程序列拖放红色箭头
现在,红色流包含无法转换为整数的值
蓝色流程是具有成功铸造价值的流程
查看以下屏幕截图以了解详细信息:
第3步:以您想要的方式处理未广播的值
请注意,错误流的输出将为您提供两个有价值的列:
- [错误代码]
- [错误栏]
ErrorCode
基于
ErrorColumn
,您可以确保错误是否来自列AccountNo
。您可以使用派生列来执行此操作
在我的示例中,输入为:
AccountNo
123
1234
123f
1e23
步骤1:尝试将字符串强制转换为整数
只需使用派生列,尝试转换为I8
(DT_I8)账号
步骤2:配置错误输出,以捕获错误行
成功转换行将转到nomarl流,无法转换到I8的值将重定向到错误流。
一般数据流如下所示(查看屏幕截图):
要获取错误值,只需从驱动程序列拖放红色箭头
现在,红色流包含无法转换为整数的值
蓝色流程是具有成功铸造价值的流程
查看以下屏幕截图以了解详细信息:
第3步:以您想要的方式处理未广播的值
请注意,错误流的输出将为您提供两个有价值的列:
- [错误代码]
- [错误栏]
ErrorCode
基于ErrorColumn
,您可以确保错误是否来自列AccountNo