Ssis 如何验证平面文件中的数据?

Ssis 如何验证平面文件中的数据?,ssis,Ssis,我使用脚本组件验证超过50列的数据。但这需要更多的时间。在ssis中没有第三方工具的情况下,任何机构都可以提供此验证的解决方案 例如: 我在以下几点中验证了dob列 日期格式是否正确。这是我期望的格式(mm/dd/yyyy) DOB不等于空 DOB值不大于(1999年12月31日) DOB值也检查是否为日期 如果您对excel文件中的字段有疑问,可以将数据导入临时表,将所有字段创建为varchar的表,并将文件中的数据插入其中。加载数据时,您可以使用sql验证或ssis组件来验证数据,您应该测试

我使用脚本组件验证超过50列的数据。但这需要更多的时间。在ssis中没有第三方工具的情况下,任何机构都可以提供此验证的解决方案

例如:

我在以下几点中验证了dob列

  • 日期格式是否正确。这是我期望的格式(mm/dd/yyyy)
  • DOB不等于空
  • DOB值不大于(1999年12月31日)
  • DOB值也检查是否为日期

  • 如果您对excel文件中的字段有疑问,可以将数据导入临时表,将所有字段创建为varchar的表,并将文件中的数据插入其中。加载数据时,您可以使用sql验证或ssis组件来验证数据,您应该测试哪个更快

    编辑1: 在此之后,您可以创建函数来验证每个字段,如:

    CREATE Function [dbo].[Validate_Field](
        @Code [varchar](2),
        @Code2 [varchar](2)
    )
    Returns VarChar(50) AS
    BEGIN
        Declare @return Varchar(50)   
        SET @Salida = ''    
        IF @Code = '29' RETURN 'Something 1'    
        IF @Code2 = '21' RETURN 'Something 2'   
        ELSE RETURN 'Missing'   
        Return (@return)
    END
    
    
    SELECT [dbo].[Validate_Field](Field1, Field2)
    FROM Staging_Table
    

    我希望这能有所帮助。

    不要重新发明轮子。将日期数据作为日期数据类型导入。让SSIS魔法验证它是否是一个日期。在SSIS中,使用派生列确定数据是否与您的业务逻辑(有效边界、数据存在等)匹配您的权限,但我已从flate文件中收到以下格式的日期(mm/dd/yyyy)。如何在“平面文件提前连接”选项卡中设置此格式。我在使用内格函数的sql查询中进行了尝试。但它只允许25个内部案例。如何在sql server中验证超过70列。CASE WHEN condition然后CASE WHEN condition 1然后ELSE calculation 2 END ENDHi,我建议您使用一个函数来实现这一点,让它变得简单,如果您认为需要使用if子句为每个字段创建一个验证函数,那么您就不需要Select语句中的案例了。您能举一些例子吗?当然,我会编辑答案。