我想创建一个ssis etl包。我是ssis的新手。仍然设法从互联网上学习基础知识并开始研究它。 Source = xml。 destination = microsoft sql server database .. 2个单独的表,一个表示良好的记录,另一个表表示不良记录。
我的最终结果应如下所示,具有错误的特定列应该出现在下表中,如果单个xml行中有20个坏字段,那么20个不良记录应分别位于下表中。 糟糕的记录结构:
[Slno]
[LoanNumber] = this is primary key in my source, so this needs to inserted for every bad data column.
[ErrorField] = i need to insert which input data in xml has error.
[ErrorFieldValue] = i need to insert what is the value of error column.
[ErrorMessage]= and a error message based on the validaiton.
输入xml data =它在xml中有5行数据,每行有100个数据字段。
我需要在将它放入sql数据库表之前验证xml中的每个数据字段。
我尝试基于数据转换字段进行验证...示例if(Amount)来自输入数据源!= float ..将错误重定向到sql错误表目的地..但是映射时我需要映射所有好的字段或只有我可以选择特定列,但如果输入数据中有20-30个错误字段无法验证并映射错误值。
我需要的验证是长度验证,字母数字和日期。我需要检查字段的长度不应该是> 10否则它应该移动到错误表,就像该数量不应该是字母数字,日期应该是正确的。
请帮我解决这个问题。
答案 0 :(得分:0)
我建议的是首先生成符合所有业务规则的XSD。使用此XSD验证XML,然后继续开始将有效的XML作为数据流的一部分。
以下是关于如何使用脚本任务验证XML数据的blog。您可以通过添加适当的OleDBConnection并将该数据放入错误表中来进一步调整该代码以获取您要查找的错误。