Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何比较ssis中的两个平面文件?_File_Ssis_Compare_Flat - Fatal编程技术网

File 如何比较ssis中的两个平面文件?

File 如何比较ssis中的两个平面文件?,file,ssis,compare,flat,File,Ssis,Compare,Flat,TableOne.txt(txt文件) TableTwo.txt(txt文件) 现在我想比较这些平面文件。 1.我希望表2文本文件库中不存在的所有数据都是LoadNumber,并且我希望表1文本文件库中不存在的所有数据都是LoadNumber1-通过平面文件源组件读取两个文本文件 2-按装载编号对其进行排序 3-连接到合并联接(联接类型:完全外部联接)并通过TableOne.LoadNumber-TableTwo.LoadNumber进行联接 4-基于ISNULL(tableXXXX.LoadN

TableOne.txt(txt文件)

TableTwo.txt(txt文件)

现在我想比较这些平面文件。
1.我希望表2文本文件库中不存在的所有数据都是LoadNumber,并且我希望表1文本文件库中不存在的所有数据都是LoadNumber

1-通过平面文件源组件读取两个文本文件

2-按装载编号对其进行排序

3-连接到合并联接(联接类型:完全外部联接)并通过TableOne.LoadNumber-TableTwo.LoadNumber进行联接

4-基于ISNULL(tableXXXX.LoadNumber)的条件拆分,例如,如果TableOne.LoadNumber为null,则表1中缺少


另一种方法是将两个平面文件加载到平面文件源中的SQL表中,并使用执行SQL任务连接这些表并获取数据

使SSIS工作流更简单,但显然需要2个SQL表

如果使用此方法,请不要忘记在开始时清除表。

您可以在SSIS脚本任务中使用C#脚本来完成此操作。 参考:


谢谢,但我没有得到完整的数据…意味着LoadNumber、Name、Cost、Address…我只得到LoadNumber您需要确保非关键字段通过排序(即通过选中)和合并联接(合并中两个表的所有字段均已选中)传递谢谢,我知道了…但还有一个问题..我可以为两条记录创建一个数据集吗..您可以在条件拆分之后添加一个并集,您将在一行中使用6列(每个表3列)…ISNULL([one.LoadNumber])| | ISNULL([Two.LoadNumber])此条件..现在我获得了正确的数据..我可以使用此..还是不可以使用
LoadNumber  Name    Address
101         Yogesh  ABC
102         Zebra   XYZ
103         Kattle  BTM
LoadNumber  Cost    EName
101         240     Yogesh
105         500     Kavita
110         340     Kamal
using System; 
using System.IO;  

public class CompFiles {  
  public static void Main(string[] args) {  
    int i=0, j=0;  
    FileStream f1;  
    FileStream f2;  

    try {  
      // open first file 
      try {  
        f1 = new FileStream(args[0], FileMode.Open);  
      } catch(FileNotFoundException exc) {  
        Console.WriteLine(exc.Message);  
        return;  
      }  

      // open second file  
      try {  
        f2 = new FileStream(args[1], FileMode.Open);  
      } catch(FileNotFoundException exc) {  
        Console.WriteLine(exc.Message);  
        return;  
      }  
    } catch(IndexOutOfRangeException exc) {  
      Console.WriteLine(exc.Message + "\nUsage: CompFile f1 f2");  
      return;  
    }  

    // Compare files  
    try {  
      do {  
        i = f1.ReadByte();  
        j = f2.ReadByte();  
        if(i != j) break; 
      } while(i != -1 && j != -1);  
    } catch(IOException exc) {  
      Console.WriteLine(exc.Message);  
    }  
    if(i != j)  
      Console.WriteLine("Files differ."); 
    else 
      Console.WriteLine("Files are the same."); 

    f1.Close();  
    f2.Close();  
  }  
}