You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSIS如何编写条件验证字符串列无数字并导出错误信息至Excel

SSIS实现product-name列校验及错误数据导出操作步骤

一、Conditional Split组件校验逻辑配置

  • 先确认上游Excel源组件的列映射正确:将product-name列的数据类型配置为DT_WSTR(对应Excel字符串类型),避免类型不兼容导致表达式执行报错。
  • 拖入Conditional Split组件,将上游Excel源的输出流连接到该组件,打开组件编辑器配置输出规则:
    • 新增第一个输出,命名为合规数据,在条件栏输入以下表达式:
      !ISNULL([product-name]) 
      && LEN(TRIM([product-name])) > 0
      && FINDSTRING([product-name],"0",1) == 0
      && FINDSTRING([product-name],"1",1) == 0
      && FINDSTRING([product-name],"2",1) == 0
      && FINDSTRING([product-name],"3",1) == 0
      && FINDSTRING([product-name],"4",1) == 0
      && FINDSTRING([product-name],"5",1) == 0
      && FINDSTRING([product-name],"6",1) == 0
      && FINDSTRING([product-name],"7",1) == 0
      && FINDSTRING([product-name],"8",1) == 0
      && FINDSTRING([product-name],"9",1) == 0
      
      这个表达式的逻辑是:先排除空值、空字符串的情况,再逐次判断字符串中是否存在0-9的半角数字,所有数字都查找不到时判定为合规。如果业务允许空值,直接删掉前两行非空判断即可;如果需要校验全角数字,在后面追加对应全角数字的FINDSTRING判断就行。
    • 将组件的默认输出重命名为不合规数据,所有不满足合规条件的记录会自动流入这个输出,不需要额外编写条件。
  • 将合规数据输出端连接到下游的数据库写入目标组件(OLE DB Destination),正常映射字段写入数据库即可。

二、不合规记录导出Excel配置

  • 提前准备错误导出的Excel模板:新建xlsx文件,第一行写入表头,除了和源Excel一致的业务列(比如product-name、其他业务字段)之外,新增一列错误原因,保存到固定的文件路径下。
  • 新建对应这个错误文件的Excel连接管理器,勾选“首行包含列名称”选项,连接到刚才建好的模板文件。如果需要每次执行包时覆盖旧的错误记录,可以在控制流加一个文件系统任务,执行包前先删除旧的错误文件,避免数据重复追加。
  • 在Conditional Split的不合规数据输出流路上,拖入一个派生列组件,新增名为错误原因的列,列值表达式可以根据需求配置:
    • 简单提示:"product-name列内容有误,不得包含数字"
    • 带错误值的提示:"product-name列输入值【" + [product-name] + "】包含非法数字,请修改后重新上传"
  • 将派生列组件的输出连接到Excel目标组件,选择之前建好的错误Excel连接管理器,将所有业务列、新增的错误原因列和Excel表的列一一映射,配置完成后执行包,不合规记录就会自动导出到指定Excel文件中。

注意:如果导出时遇到Excel被占用、数据类型不匹配的报错,先检查目标Excel文件是否处于打开状态,同时确认派生列、源列的字符串长度和Excel目标列的长度配置一致。

内容的提问来源于stack exchange,提问作者EYA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 00:09:22