TableOne.txt(txt文件)
LoadNumber Name Address
101 Yogesh ABC
102 Zebra XYZ
103 Kattle BTM
TableTwo.txt(txt文件)
LoadNumber Cost EName
101 240 Yogesh
105 500 Kavita
110 340 Kamal
现在我要比较这些平面文件。 1.我希望表2中没有的所有数据文本文件库都是LoadNumber,而且我希望表一文本文件库中没有的所有数据都是LoadNumber
答案 0 :(得分:1)
1-通过平面文件源组件
读取两个文本文件2- 按LoadNumber排序
3-连接到合并连接组合(连接类型:完全外连接)并通过TableOne.LoadNumber连接 - TableTwo.LoadNumber
基于ISNULL(tableXXXX.LoadNumber)的4- 条件分割,例如如果TableOne.LoadNumber为null,则表1中缺少
答案 1 :(得分:1)
您可以在SSIS脚本任务中执行C#脚本。 参考:http://www.java2s.com/Code/CSharp/File-Stream/Comparetwofiles.htm
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();
}
}
答案 2 :(得分:0)
另一种方法可以是将平面文件加载到SQL表格中。使用执行SQL任务来加入表格&得到数据。
使SSIS工作流程更简单,但显然需要2个SQL表。
如果使用此方法,请不要忘记在开始时清除表格。