如何在 SSIS 中实现 TRY_CONVERT 功能?
How to achieve TRY_CONVERT functionality in SSIS?
在 SSIS 包中,我导出了列,我想在其中格式化 phone,如下所示:
CASE
WHEN TRY_CONVERT(BIGINT, phone) IS NULL THEN
NULL
ELSE
phone
END
如何使用 SSIS 表达式获得与上述相同的结果?
派生列
您必须使用以下表达式:
(DT_I8)[Phone] == (DT_I8)[Phone] ? [Phone] : NULL(DT_WSTR,50)
请注意,您必须将 (DT_WSTR,50)
替换为列 [Phone]
的数据类型。 Click here for more information
并在派生列错误输出中将错误选项更改为 Ignore Failure
脚本组件
您也可以使用脚本组件实现此目的:
- 为数据流任务添加脚本组件
- Select [Phone] 作为输入列
- 创建与 [Phone] 示例相同类型的新输出列 [outPhone]
使用类似的代码
if(!Row.Phone_IsNull && !String.IsNullOrEmpty(Row.Phone) && Int64.TryParse(Row.Phone, out long number)){
Row.OutPhone = Row.Phone;
}else{
Row.OutPhone_IsNull = true;
}
在 SSIS 包中,我导出了列,我想在其中格式化 phone,如下所示:
CASE
WHEN TRY_CONVERT(BIGINT, phone) IS NULL THEN
NULL
ELSE
phone
END
如何使用 SSIS 表达式获得与上述相同的结果?
派生列
您必须使用以下表达式:
(DT_I8)[Phone] == (DT_I8)[Phone] ? [Phone] : NULL(DT_WSTR,50)
请注意,您必须将 (DT_WSTR,50)
替换为列 [Phone]
的数据类型。 Click here for more information
并在派生列错误输出中将错误选项更改为 Ignore Failure
脚本组件
您也可以使用脚本组件实现此目的:
- 为数据流任务添加脚本组件
- Select [Phone] 作为输入列
- 创建与 [Phone] 示例相同类型的新输出列 [outPhone]
使用类似的代码
if(!Row.Phone_IsNull && !String.IsNullOrEmpty(Row.Phone) && Int64.TryParse(Row.Phone, out long number)){ Row.OutPhone = Row.Phone; }else{ Row.OutPhone_IsNull = true; }