ssis - 在 SSIS 2019 中面临查找转换的问题
问题描述
我正在使用 SSIS 2019 并具有如下所述的场景,我正在使用查找转换和匹配列的输出。
- 我需要检查文件是否存在
- 如果 File 存在,那么我需要将查找转换的输出与文件的内容进行比较,并跳过匹配的行,只考虑不匹配的行。3)如果文件不存在,那么我需要使用查找转换的输出并继续流程。
有人可以建议我们可以使用什么样的转换来实现上述功能。
1)我尝试使用脚本任务检查文件是否存在,如果成功使用另一个查找转换,但无法与上述查找转换的匹配列与文件行内容进行比较。
有人可以建议使用转换来实现数据流任务中的上述功能。
解决方案
我可以通过添加行号作为输出列作为数据流的第一步来做到这一点。然后我修改了脚本任务以满足我的以下条件。1)检查文件是否存在,然后将生成的行号与新临时文件上的行号进行比较,是否匹配跳过迭代并返回。2)如果没有找到匹配,则将数据插入 Db。将数据插入数据库后,我们将数据(行号和其他列)插入到新的临时文件中,我们使用行号进行比较。
这是代码片段
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
try
{
if (ChecktempFileExists())
{
bool rowMatch = false;
string tempFile = Variables.FTPTempFileName.ToString();
string[] lines =File.ReadAllLines(tempFile);
foreach (string line in lines)
{
var values = line.Split(';');
if (Row.Rownumber.ToString() == values[0] && Row.ClientID == values[1] && Row.GroupNo == values[2])
{
rowMatch = true;
return;
}
}
if (!rowMatch)
{
Validate(Row);
CreateFormContext(Row);
if (Row.ErrorCode_IsNull == true || Row.ErrorCode.Length == 0)
{
Row.ErrorCode = "OK";
Row.ErrorDescription = "Successful";
}
else
Row.Id = 0;
}
推荐阅读
- c++ - 高效的 Graph 数据结构,在 C++ 中支持非常快速的节点和边删除
- java - 构建失败的 Android Room 和 EventBus
- python - 在 Django Rest 框架中为图像返回完整的图像 URL
- r - mlogit 和 clusterSEs - 数据框中的错误
- reactjs - Redux / RTK:为一片创建增强器?
- python - win32com 打开Word
- flutter - 在 Flutter 应用中的 Google 地图顶部添加和动态更改位置小部件的位置
- laravel - Laravel Passport 为每个设备 ID 创建多个访问令牌
- javascript - VSCode - @绝对路径自动完成不起作用
- python - 返回数据帧的所有行,其中值位于两个特定列中的任一列